MySQL 一张或多张表适用于不同的产品类型?

标签 mysql

假设我在我的网站上销售游戏、歌曲或专辑。仅就性能而言,是只有一张带有“类型”字段的表更好,还是每种类型一张表更好?这些字段几乎相同。

谢谢。

最佳答案

这完全取决于您期望拥有多少条记录,以及您打算运行哪种查询。如果您要查看每种类型的数百万个数据,那么将它们拆分为单独的表可能会提高性能,但如果您将索引添加到正确的列,那么拥有一个表绝对没问题。

为了简单起见,单个表就很好 - 您可以使用类型列简单地过滤所需的项目类型。只需确保对该列建立索引,否则一旦开始获取大量记录,性能会非常糟糕。但如果不知道您认为从长远来看会有多少项目,那么估计是一件相当困难的事情。

也许具有更多 DBA 知识的人可以在这里插话,但我想说

  • 如果您想要绝对最佳的性能 - 拆分表格
  • 如果您不介意可能存在毫秒级的差异 - 单个表。

正如 @Sander Visser 所指出的,如果您希望能够对所有待售商品进行全文搜索,那么单个表格会更好。尝试在 3 个表上执行此操作会有点棘手,因为您很可能最终会得到 3 个单独的查询(或联合查询),这可能比单个表搜索慢。

鉴于您会在正常操作中查看 1 个表和 3 个表实现之间的非常小的时间差异,我建议使用单表方法。

关于MySQL 一张或多张表适用于不同的产品类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24980092/

相关文章:

java - 如何使用 Java 创建 MySQL 日志

Mysql:将查询结果存储到单独的临时/虚拟表中

mysql - 带有连接的慢查询

mysql - 计算 MySQL 中的未付金额

mysql - SQL:只取每个 "group"的最新条目?

带有 SELECT 子句和三个不同表的 MYSQL

mysql - 如何选择相册,统计照片,每个相册选一张照片?

mysql - 如何在 Windows 上获取 lib_mysqludf_sys.dll 文件

mysql - 所选列没有兼容的类型,即使它具有相同的类型

php - jQuery-Ajax 不适用于生产服务器