我有我的数据库存储大量的产品信息(年份,名称,发行date,数量等)。 我目前加载所有的产品,并将它们存储在一个会话variables – 现在只有8个产品,但名单将随着时间的推移而增长。 我这样做的原因是(可能愚蠢)每次访问产品页面时保存HDD读取。 我是否将这些信息存储在会议中,以此来拍摄自己的脚?
是的,你可能在脚下开枪。 如果每个用户会话都存储了所有的产品信息,那么一旦拥有大量用户和许多产品,就可能导致内存不足。
我build议使用像memcached这样的东西来caching对产品表的查询,这样你就不会太难,但是你没有用尽内存。
但是这取决于你期待的是什么样的规模 – 如果你只有50kB的产品数据和500个同步的用户会话,那么你只能吃到25MB,你可能会逃避。 如果您期望50MB的产品数据和50,000个用户会话,那么您将使用2.5TB的RAM,这可能不会有。
如果你只有8个产品,你不需要数据库:-)
如果你想使用数据库(这可能是一个好主意,如果网站将增长),你可以使用数据库,并简单地指向一个会议产品的关键数组。 在会议中有重复的信息是一个痛苦和不必要的 – 为什么在两个地方呢?
如果数据库经常被访问,所有的产品表信息最有可能在内存中,所以你不需要添加任何更复杂的内容。 对于大多数网站,memcached只是一种尝试加速devise非常糟糕的数据库查询或ORM的方法。