MySQL 数据库效率 - GROUP BY 与单独的表

标签 mysql performance

我正在尝试显示用户的购物车,其中列出了商品。我想要避免的是 - 2、3 或 10 年后,在 db_cartitems 变为 10,000 个项目长后,查询结果需要很长时间才能显示结果。

在组织数据库表结构时,我是否应该有一个表列出以前订购的所有产品,然后按购物车标记进行分组(我创建了一个 rand() 数字以确保每个购物车构建中的购物车项目彼此唯一关联)。

或者有更好的方法吗?还是我太担心了?对于列出的 50,000 个订购项目进行搜索,响应时间是否相当不错?

商家每天可能会收到 50 个或更少的订单,我担心没有提前规划增长。

最佳答案

您要问的是是否应该对数据进行非规范化处理,以便更有效地查询。我建议阅读一些有关数据库规范化主题的内容,以获得有关此类决策的更多背景信息。

为了回答您的问题,您(通常)应该始终从规范化表开始,如果您开始遇到性能问题,请考虑非规范化。我不会担心 2、3 或 10 年后会发生什么,因为您今天可能有很多问题需要担心。

从规范化模型迁移到非规范化模型并不困难,而且如果遇到问题(例如归档旧数据),您可能还有其他选择来提高性能。

关于MySQL 数据库效率 - GROUP BY 与单独的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11284638/

相关文章:

php - 从 SQL 查询中选择要加入的表名

不同格式的php搜索日期

mysql - 无法打开引用表

android - Android App Check :JNI 启动时间太慢

c# - 搜索 1GB CSV 文件

php - MySql 中使用 INSERT 引导空格

mysql - 将 SQL 查询转换为 Codeigniter Active Record

MySQL 性能 : Single table or multiple tables

java - 减少 Java 垃圾收集时间的关键因素或良好实践有哪些?

javascript - 我应该用默认值初始化 JavaScript 中的变量吗?