首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类似于MySQL的查询在5.1到5.6之间更改为全表扫描

类似于MySQL的查询在5.1到5.6之间更改为全表扫描
EN

Stack Overflow用户
提问于 2014-07-30 13:16:17
回答 2查看 246关注 0票数 3

由于某种原因,MySQL 5.6会进行全表扫描,而MySQL 5.1则不会。为什么会发生这种情况?

编辑:两个表都有相同的精确索引。

关于MySQL 5.1

代码语言:javascript
复制
    mysql> explain SELECT `kv`.`key`, `kv`.`value` FROM `kv` WHERE `kv`.`key` LIKE BINARY 'weit-149411-%';
+----+-------------+--------------+-------+---------------+---------+---------+------+------+-------------+
| id | select_type | table        | type  | possible_keys | key     | key_len | ref  | rows | Extra       |
+----+-------------+--------------+-------+---------------+---------+---------+------+------+-------------+
|  1 | SIMPLE      | kv           | range | PRIMARY       | PRIMARY | 192     | NULL |  182 | Using where |
+----+-------------+--------------+-------+---------------+---------+---------+------+------+-------------+

关于MySQL 5.6

代码语言:javascript
复制
    mysql> explain SELECT `kv`.`key`, `kv`.`value` FROM `kv` WHERE `kv`.`key` LIKE BINARY 'weit-149411-%';
+----+-------------+--------------+-------+---------------+---------+---------+------+-------------+-------------+
| id | select_type | table        | type  | possible_keys | key     | key_len | ref  | rows        | Extra       |
+----+-------------+--------------+-------+---------------+---------+---------+------+-------------+-------------+
|  1 | SIMPLE      | kv           | ALL   | PRIMARY       | NULL    | NULL    | NULL |  108364642  | Using where |
+----+-------------+--------------+-------+---------------+---------+---------+------+-------------+-------------+
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-23 14:35:57

原来这就是预期的效果。从MySQL 5.5 LIKE BINARY开始不再是使用可用索引

我正在创建一个Django查询,该查询使用key__startswith 1进行查询,默认情况下它会执行二进制查询。

我能够通过做key__istartswith来解决这个问题,它在键上做了一个不区分大小写查询。这对于我的用例来说很好,因为所有的东西都是小写的。

票数 0
EN

Stack Overflow用户

发布于 2014-08-19 15:01:54

您对5.1实例的统计数据可能会失效,并且可能会在该表中的行数减少时收集。

建议:在5.6中,设置全局innodb_stats_persistent_sample_pages=300;分析表;检查查询执行情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25037823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档