【发布时间】:2015-06-25 12:48:07
【问题描述】:
我需要一些关于 mysql 的帮助。
让我们告诉你。我有两张桌子:nodes(250 000 行):id | name
还有表 groups(~400 000 行):id | group_id | node_id - index(node_id) 可能还有 index(group_id)
问题查询:select count(*) from nodes n inner join groups g on g.node_id = n.id \
where g.group_id in (1,20, 30...);
执行时间:0.50 秒,这对我来说是个问题。
如何优化查询以计算行数然后进行选择? 我可以在哪里放置索引或新字段以获取利益?
【问题讨论】:
-
连接列上是否有索引?
-
使用说明找出您需要
index的地方 -
Madhivanan,是的。索引(node_id)
-
您可能需要一个索引为
alter table groups add index gid_nid_idx(group_id,node_id),请确保在应用索引之前进行备份。 -
@AbhikChakraborty,谢谢,我会检查一下
标签: mysql sql query-optimization