哪个查询会更快

zam*_*mil 2 mysql database-design

我有一个包含17个字段的用户表和一个包含40个字段的用户详细信息表,并且都使用user_id连接,user_id是用户表的主键.它们不是级联的这两个表都有最多400,000到500,000的行在我的软件中大部分时间我都需要加入这两个表来产生输出.

我的问题是,如果我删除用户详细信息表并将其字段放在用户表本身中,我的查询运行速度会更快.所以我可以使用连接查询获得结果

哪一个更好1)一个表中的所有字段或2)两个表并使用连接查询

Pis*_*3.0 6

我不是想成为一个聪明人,但唯一合理的答案是"尝试并为自己衡量".

你看,你的问题中有太多未知变量:

  • 表格的引擎(MyISAM,InnoDB,...)
  • 附加WHERE条件,如果有的话
  • 额外的JOINs,如果有的话
  • 表结构("40个字段"是非常不同的,如果它们都是INT或CHAR或TEXT或VARCHAR或某种组合).
  • 现有指数
  • 表上的读/写比率和相关的骚扰(即使用的锁定模型)
  • 还有其他很多东西

尝试运行您的查询/查询EXPLAIN; 查询计划将为您提供比我们提供的更具体的数据.