Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
优化给定的mySql查询_Mysql - Fatal编程技术网

优化给定的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