索引mysql数据库中的连接

时间:2011-02-03 19:23:29

标签: mysql indexing inner-join

有一个关于mysql和索引中的连接的快速问题。如果我有两张桌子:

table1
 id
 name

table2
 table1id
 table2title

我使用id和table1id连接table2和table1,我会在table1上添加一个索引,在table2中添加table1id吗?或者我只是在其中一个表中添加一个索引?我使用MySQL和MyISAM版本5.x

2 个答案:

答案 0 :(得分:3)

如果table1id是主键,则无需为其编制索引。 (主键自动编入索引) 如果没有,那么您需要对table1idtable2进行索引。table1id

使用“EXPLAIN”选择查看您正在点击的索引。

答案 1 :(得分:2)

是的,在两个id列上添加索引(正如另一张海报所说,primary列已编入索引)。索引允许MySQL quickly locate数据文件中的行,而不是按顺序读取。

如果您需要给定id的两个表中的行,请为两个表编制索引以获得最佳性能。否则,初始子句(SELECT...WHERE)将快速运行,JOIN将会很慢(反之亦然),导致查询速度变慢。