Mysql:如何优化此查询。为了更快的结果

时间:2016-04-25 04:15:33

标签: mysql sql

如何优化此查询,为了获得更快的结果,它在1000万行上花费了80多秒。

su_id AND admin_id都是BTREE索引

SELECT su_id FROM members_ext WHERE admin_id = 5962789

两者都是INT数据类型,BTREE索引

su_id的基数是8496470,admin_id是10437

解释结果

id  ,select_type,table  ,type,rows, Extra   
1, SIMPLE ,members_ext , ALL ,8496471 ,Using where

2 个答案:

答案 0 :(得分:2)

在admin_id,su_id上组合键,这样数据就可以仅通过索引获取。

答案 1 :(得分:0)

不要在varchars中存储数字,然后与数字进行比较。它不会有效。

在此处添加引号:

SELECT su_id FROM members_ext WHERE admin_id = "5962789"

然后,为了更快的查询,请INDEX(admin_id, su_id)

如果此答案中的任何内容有误,请提供SHOW CREATE TABLE members_ext。有一些重要的缺失。