【发布时间】:2012-02-14 22:26:27
【问题描述】:
我想制作一张有 4 列的表格。一列是主键,另外三列是对其他表列的引用。我想用它来加入这四个表来做一个搜索过滤器。这些连接需要时间。
我在想我应该索引这些列,因为我读到在连接条件中使用的列上添加索引 [使它们运行得更快]。我的问题是,如果表的所有列都被索引,会有问题吗?或者有没有其他方法可以降低搜索过滤器的时间复杂度。提前致谢。
更多提示: 表1(主搜索)-1000个条目 首要的关键 fk1 fk2 fk3
Table2-800 条目 PK1 ..(8-9 列)
Table3-700 条目 PK2 ..(10-12 列)
Table2-850 条目 PK3 ..(7-8 列)
【问题讨论】:
-
您的表使用什么引擎?你使用外键吗?
-
@piotrekkr:我正在使用 MyISAM 引擎。并且没有外键。所有其他 3 个表都有数千个数据,并且会逐日增长。
-
为什么不只索引您当前正在加入的列?所以说
t1 JOIN t2 ON t1.id = t2.id然后确保你在 t1.id 上有一个索引,在 t2.id 上有一个索引。我真的认为不需要为此单独设置一个表。
标签: mysql performance indexing search-engine