有一个关于mysql和索引中的连接的快速问题。如果我有两张桌子:
table1
id
name
table2
table1id
table2title
我使用id和table1id连接table2和table1,我会在table1上添加一个索引,在table2中添加table1id吗?或者我只是在其中一个表中添加一个索引?我使用MySQL和MyISAM版本5.x
答案 0 :(得分:3)
如果table1
。id
是主键,则无需为其编制索引。 (主键自动编入索引)
如果没有,那么您需要对table1
。id
和table2
进行索引。table1id
使用“EXPLAIN”选择查看您正在点击的索引。
答案 1 :(得分:2)
是的,在两个id
列上添加索引(正如另一张海报所说,primary
列已编入索引)。索引允许MySQL quickly locate数据文件中的行,而不是按顺序读取。
如果您需要给定id的两个表中的行,请为两个表编制索引以获得最佳性能。否则,初始子句(SELECT...WHERE
)将快速运行,JOIN
将会很慢(反之亦然),导致查询速度变慢。