PHP会话性能:数组与数据库表中的键?
与前一篇文章类似,我希望在一个小的webapp上实现用户偏好 目前,用户可以自定义大约10个字段(将来可能会更改) 对数据库进行初始查询并将这些首选项加载到PHP会话性能:数组与数据库表中的键?,php,database,session,Php,Database,Session,与前一篇文章类似,我希望在一个小的webapp上实现用户偏好 目前,用户可以自定义大约10个字段(将来可能会更改) 对数据库进行初始查询并将这些首选项加载到会话数组中,或者只获取每页所需的首选项,这样做更有意义吗?目前,所有字段都不超过12个字符 目前,用户总数非常少(内部开发阶段),但将来可能会有数百或数千个给定实例的用户 我还没有亲自对这些问题进行过基准测试,目前还无法做到这一点(用户基数太小)。我认为基于会话的方法将是更好的解决方案(只要没有敏感的用户名/密码等信息)。毕竟,磁盘空间比多个
会话
数组中,或者只获取每页所需的首选项,这样做更有意义吗?目前,所有字段都不超过12个字符
目前,用户总数非常少(内部开发阶段),但将来可能会有数百或数千个给定实例的用户
我还没有亲自对这些问题进行过基准测试,目前还无法做到这一点(用户基数太小)。我认为基于会话的方法将是更好的解决方案(只要没有敏感的用户名/密码等信息)。毕竟,磁盘空间比多个数据库查找便宜得多
或者,您可以考虑使用类似于“如果性能成为问题”的方法。我认为基于会话的方法将是更好的解决方案(只要其中没有敏感的用户名/密码等信息)。毕竟,磁盘空间比多个数据库查找便宜得多
或者,您也可以使用类似于“如果性能成为问题”的方法。无论哪种方法都会影响磁盘。但是,提取会话数据的开销可能更小,因此仅使用一次mysql开销可能会更好。正如另一个人所建议的,memcached或其他一些堆表将是一种很好的方法,可以避免在后续页面加载时撞击磁盘,并允许您的解决方案在以后进行扩展,默认会话处理程序不会在服务器之间共享
顺便说一句,您可以使用httperf或AB或任何数量的其他解决方案自己对其进行基准测试,而无需等待用户群的增长。无论哪种方式,您都在访问磁盘。但是,提取会话数据的开销可能更小,因此仅使用一次mysql开销可能会更好。正如另一个人所建议的,memcached或其他一些堆表将是一种很好的方法,可以避免在后续页面加载时撞击磁盘,并允许您的解决方案在以后进行扩展,默认会话处理程序不会在服务器之间共享
顺便说一句,您可以使用httperf或AB或任何数量的其他解决方案自己对其进行基准测试,而无需等待用户群的增长。我喜欢的一种会话管理是内置的egroupware。在该系统中,每个首选项可由3个级别定义:
- 强制偏好(超级用户决策,用户实际上看不到)
- 默认偏好
- 用户定义值
正如你们所看到的,当我想到会话时,我想到的是比数据库更快的东西。如果您的系统没有提供比数据库更快的会话方式,我个人认为这是系统故障,这将是系统管理员的工作。在应用程序侧,您应该考虑像数据库一样快的会话。 < P>我喜欢的一个会话管理是在EGROMPUWE中构建的会话管理。在该系统中,每个首选项可由3个级别定义:
- 强制偏好(超级用户决策,用户实际上看不到)
- 默认偏好
- 用户定义值