mysql 日期能用索引_mysql 日期与索引问题
select * from xxx where event_time>'2018-06-02' 可以使用索引, mysql默认会把后面的字符串转成date类型。可以使用between and
select * from
日期类型可以直接和string格式的字符串比较 select * from xxx where event_time>'2018-06-02' 可以使用索引, mysql默认会把后面的字符串转成date类型。可以使用between and select * from xxx where date(event_time)>'2018-06-02' 不能使用索引 如果时间戳日期和时间都要比较, 最好使用两个字段保存这个时间戳, 这样可以利用索引 select * from xxx where event_time>1239237428734; -- 使用错误, 不能这么用。可以使用from_unixtime()将数字转成日期类型 将date和time合并成一个datetime select str_to_date(concat(ICDate,' ',ICTime),'%m/%d/%y %h:%i:%s %s') from XXXX 其他索引总结: where条件等号两边字段类型不同,不走索引 like 'XXX%' 走索引, '%XXX%'不走索引 对字段进行函数运算不走索引 组合索引 只使用后面的字段不走索引,使用前后的字段走索引. 第一个字段有参于(而且字段类型匹配 没有函数运算)MySQL 索引,那么会走索引, 第一个字段可以在sql中的任意位置 组合索引遇到第一个不等值条件 即中断后面字段使用索引 字段类型不匹配,不走索引 示例: (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |