假设我在我的网站上销售游戏、歌曲或专辑。仅就性能而言,是只有一张带有“类型”字段的表更好,还是每种类型一张表更好?这些字段几乎相同。
谢谢。
最佳答案
这完全取决于您期望拥有多少条记录,以及您打算运行哪种查询。如果您要查看每种类型的数百万个数据,那么将它们拆分为单独的表可能会提高性能,但如果您将索引添加到正确的列,那么拥有一个表绝对没问题。
为了简单起见,单个表就很好 - 您可以使用类型列简单地过滤所需的项目类型。只需确保对该列建立索引,否则一旦开始获取大量记录,性能会非常糟糕。但如果不知道您认为从长远来看会有多少项目,那么估计是一件相当困难的事情。
也许具有更多 DBA 知识的人可以在这里插话,但我想说
- 如果您想要绝对最佳的性能 - 拆分表格
- 如果您不介意可能存在毫秒级的差异 - 单个表。
正如 @Sander Visser 所指出的,如果您希望能够对所有待售商品进行全文搜索,那么单个表格会更好。尝试在 3 个表上执行此操作会有点棘手,因为您很可能最终会得到 3 个单独的查询(或联合查询),这可能比单个表搜索慢。
鉴于您会在正常操作中查看 1 个表和 3 个表实现之间的非常小的时间差异,我建议使用单表方法。
关于MySQL 一张或多张表适用于不同的产品类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24980092/