我有一个应用程序需要检查用户表中的多个数据,以便创建页面。
不仅是ID和密码,还有其他数据,目前大约有7个信息部分。
这个检查在每个页面上都要进行。
我是将所有这些数据加载到会话中,然后从那里进行检查,还是在每个页面请求上执行查询呢?不用说,还有其他查询正在进行。
就优化而言,哪种做法更好?
我有一个应用程序需要检查用户表中的多个数据,以便创建页面。
不仅是ID和密码,还有其他数据,目前大约有7个信息部分。
这个检查在每个页面上都要进行。
我是将所有这些数据加载到会话中,然后从那里进行检查,还是在每个页面请求上执行查询呢?不用说,还有其他查询正在进行。
就优化而言,哪种做法更好?
如果查询和上一次完全相同,MySQL会缓存该查询,因此通过MySQL获取用户信息是可以的。特别是如果您通过主键获取所有内容,这非常快。
访问数据库的速度比访问会话慢。你应该绝对使用会话。只是不要忘记,如果这些数据在数据库中发生了变化,也应该在当前会话中进行更改。
你的问题中使用了“check”这个词 - 你是指每次页面请求都需要验证数据吗?如果是这样,你可能无法避免访问数据库。
如果你只需要存储在同一用户的不同页面之间不变的数据,那么你应该使用会话(sessions)。但请务必先阅读zend.com网站上的白皮书“PHP不是Java”!