mysql between and 索引_Between and 索引使用情况-mysql神奇的现象

本文通过一系列测试探讨了MySQL中BETWEEN AND操作符与索引的使用情况。测试显示,当表数据量小于14条时,查询大约1/3的数据会使用索引;数据量在1000左右时,如果查询超过18%的数据,则不使用索引;而当数据量超过10000条时,无论查询范围如何,BETWEEN AND似乎都会使用索引。结论可能并不绝对,需要进一步验证源代码。
摘要由CSDN通过智能技术生成

Between and有条件的使用索引,做了如下的测试

1.表的结构如下Create Table

CREATE TABLE `city` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` char(30) DEFAULT NULL,

`subcity` int(11) DEFAULT NULL,

`tdate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,

`cont` varchar(2000) DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `name_idx` (`name`)

) ENGINE=MyISAM AUTO_INCREMENT=81 DEFAULT CHARSET=utf8

2. 测试结果如下

测试场景1

表数据量是10条:

SELECT * FROM city WHERE id

BETWEEN 1 AND 5; 5/10使用索引

SELECT * FROM city WHERE id  BETWEEN 1 AND 6; 不使用索引

测试场景2

表数据量是条14:

SELECT * FROM city WHERE id

BETWEEN 1 AND 5 ; 5/14使用索引

SELECT * FROM city WHERE id  BETWEEN 1 AND 6; 不使用索引

测试场景3

表数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值