【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?
现象
今天碰到一个慢萌芽,萌芽日记找到慢萌芽语句是如许的:
- select * from convert_test where areacode=0001 and period>='20170511' and period<='20170511';
convert_test
表构造如下:
- CREATE TABLE `convert_test` (
- `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
- `areacode` char(12) NOT NULL DEFAULT '',
- `period` int(6) unsigned NOT NULL DEFAULT 0,
- `mid_price` int(10) unsigned NOT NULL DEFAULT 0,
- `mid_change` float NOT NULL DEFAULT 0,
- `updated_datetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- PRIMARY KEY (`id`),
- UNIQUE KEY `idx_areacode_period` (`areacode`,`period`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='隐式转换测试表';
表中数据42W以上。
为了查看这个语句是怎么萌芽的,我们在测试库中explain一下:
- mysql> explain select * from convert_test where areacode=0001 and period>='20170511' and period<='20170511';
结不雅如下:
可以看到,这里是没有效到索引的。
原因
有一个参数是 TIMESTAMP 或 DATETIME,并且别的一个参数是常量,常量会被转换为 timestamp
推荐阅读
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 身为一名前端工程师, 对于 SQL懂得程度并不是很深刻, 盘点一些小我工作碰到的问题,给大年夜家普及下常识, >>>详细阅读
本文标题:MySQL数据类型隐式转换规则
地址:http://www.17bianji.com/lsqh/39991.html
1/2 1