mysql内连接查询和索引

时间:2011-10-25 04:16:18

标签: mysql sql

我有两张桌子:

"badges"

badge_id, merchant_id, badge_title, badge_desc, points_req

"badges_owned"

badge_id, customer_id, badge_points, badge_flag

我的查询是:

SELECT badges.badge_id, badges.badge_title, badges.points_req, badges_owned.badge_flag, badges_owned.badge_points 
FROM badges 
INNER JOIN badges_owned ON badges.badge_id = badges_owned.badge_id 
WHERE badges_owned.customor_id = $user

我的问题如下,这个查询是最有效的,但更多的是......我会在哪里放置索引以使其最佳(仅在customor_id和badge_id上​​?)或者我必须覆盖(从未得到过)此)?

1 个答案:

答案 0 :(得分:0)

您倾向于为正在搜索或加入的字段使用索引。

查看您的选择查询,ON字段和WHERE字段最有可能成为索引的候选者。

请记住,更多索引通常意味着更快的SELECTS,但也会使更慢的INSERTS。 有一个权衡,所以不要仅仅为了它而放置东西的索引。

如果对查询使用EXPLAIN,它将显示查询计划以及正在使用的索引。这将有助于您选择索引的放置位置

相关问题