【发布时间】:2014-01-26 03:36:36
【问题描述】:
有什么方法可以以更优化的方式进行此查询?
select SQL_NO_CACHE count(*) from products p
INNER JOIN `products_categories` AS `pc` ON p.id = pc.products_id
where pc.categories_id = 87
我的架构很简单:产品、类别和 N:N 连接表:products_categories。产品约400000行。 products_categories 大约是 600000。类别 = 87 的产品大约是 18000。使用 explain 给出:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE pc index products_id products_id 8 NULL 612469 Using where; Using index
1 SIMPLE p eq_ref PRIMARY PRIMARY 4 stagingbagthis.pc.products_id 1 Using index
在我看来,rows = 612469 的第一行并不是一个好兆头。那么,可以以任何可能的方式优化此查询吗?
【问题讨论】: