mysql使用有效时间索引
借鉴自https://www.cnblogs.com/java-spring/p/12120974.html,劈天造陆大佬。
mysql建表
CREATE TABLE `t_test` ( `id` int(20) NOT NULL AUTO_INCREMENT, `trade_date` varchar(20) DEFAULT NULL COMMENT'日期', PRIMARY KEY (`id`) USING BTREE, KEY `date` (`trade_date`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
索引
批量插入数据
两个时间函数测试
1、DATE_FORMAT
EXPLAIN SELECT * FROM t_test WHERE DATE_FORMAT(t_date,"%Y-%m-%d") >= '2021-12-30';
未使用日期索引
2、str_to_date
EXPLAIN SELECT * FROM t_test WHERE t_date >= str_to_date('2021-12-30', '%Y-%m-%d');
使用到索引