索引列可空MySql

时间:2018-10-11 19:09:32

标签: mysql sql indexing nullable

我有一个DateTime类型的列可为空,该列也已建立索引。 但是执行Select时,不使用索引。

CREATE TABLE `te3` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`dataHora` datetime DEFAULT NULL,
`nome` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `IDX_DATAHORA` (`dataHora`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;



SELECT *
FROM te3 
where dataHora between '2018-10-11 15:18:16' AND '2018-10-11 15:18:50';

额外 在哪里使用

不使用索引。

查询速度很慢,我该怎么办? 只记得该列必须为空

1 个答案:

答案 0 :(得分:0)

您的索引可以设置为INVISIBLE

  

MySQL支持不可见索引; 该功能适用​​于除主键(显式或隐式)以外的索引。

ALTER TABLE te3 ALTER INDEX index_name VISIBLE;

检查:

SELECT INDEX_NAME, IS_VISIBLE
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_NAME = 'te3';