我有两张桌子:
"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上?)或者我必须覆盖(从未得到过)此)?
答案 0 :(得分:0)
您倾向于为正在搜索或加入的字段使用索引。
查看您的选择查询,ON字段和WHERE字段最有可能成为索引的候选者。
请记住,更多索引通常意味着更快的SELECTS,但也会使更慢的INSERTS。 有一个权衡,所以不要仅仅为了它而放置东西的索引。
如果对查询使用EXPLAIN,它将显示查询计划以及正在使用的索引。这将有助于您选择索引的放置位置