优化给定的mySql查询
我一直在经历我缓慢的查询,并尽我所能优化每一个查询。我遇到了这个,我一直被困在上面优化给定的mySql查询,mysql,Mysql,我一直在经历我缓慢的查询,并尽我所能优化每一个查询。我遇到了这个,我一直被困在上面 EXPLAIN SELECT pID FROM ds_products WHERE pLevel >0 id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE ds_products ALL pLevel NULL NU
EXPLAIN SELECT pID FROM ds_products WHERE pLevel >0
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE ds_products ALL pLevel NULL NULL NULL 45939 Using where
我已经索引了pLevel[tinyint(1)]
,但是查询没有使用它,正在进行完整的表扫描
以下是该表中每个pLevel值的行数:
pLevel count
0 34040
1 3078
2 7143
3 865
4 478
5 279
6 56
如果我查询特定的pLevel值,它会使用索引:
EXPLAIN SELECT pID FROM ds_products WHERE pLevel =6
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE ds_products ref pLevel pLevel 1 const 1265
我已经尝试了pLevel>=1,pLevel尝试使用MySQL
编辑:
这篇MySQL文档文章可能对您有用 您可以向我们展示您的
CREATE TABLE
SQL吗?pLevel的其他值(及其计数)在0-6范围之外吗?没有其他值,只有:0,1,2,3,4,5,6这是我用来从pLevel的每个值中获取行计数的值。我试图优化的是select查询:“select pID FROM ds_products WHERE pLevel>0”@Shaw Mead-Oops。很抱歉。有关未使用密钥的可能原因的说明,请参见我的编辑。
SELECT pLevel, COUNT(*)
FROM ds_products
GROUP BY pLevel