我正在尝试显示用户的购物车,其中列出了商品。我想要避免的是 - 2、3 或 10 年后,在 db_cartitems 变为 10,000 个项目长后,查询结果需要很长时间才能显示结果。
在组织数据库表结构时,我是否应该有一个表列出以前订购的所有产品,然后按购物车标记进行分组(我创建了一个 rand() 数字以确保每个购物车构建中的购物车项目彼此唯一关联)。
或者有更好的方法吗?还是我太担心了?对于列出的 50,000 个订购项目进行搜索,响应时间是否相当不错?
商家每天可能会收到 50 个或更少的订单,我担心没有提前规划增长。
最佳答案
您要问的是是否应该对数据进行非规范化处理,以便更有效地查询。我建议阅读一些有关数据库规范化主题的内容,以获得有关此类决策的更多背景信息。
为了回答您的问题,您(通常)应该始终从规范化表开始,如果您开始遇到性能问题,请考虑非规范化。我不会担心 2、3 或 10 年后会发生什么,因为您今天可能有很多问题需要担心。
从规范化模型迁移到非规范化模型并不困难,而且如果遇到问题(例如归档旧数据),您可能还有其他选择来提高性能。
关于MySQL 数据库效率 - GROUP BY 与单独的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11284638/