mysql concat 索引_Mysql索引总结

日期类型可以直接和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%'不走索引

对字段进行函数运算不走索引

组合索引 只使用后面的字段不走索引,使用前后的字段走索引. 第一个字段有参于(而且字段类型匹配 没有函数运算),那么会走索引, 第一个字段可以在sql中的任意位置

组合索引遇到第一个不等值条件 即中断后面字段使用索引

字段类型不匹配,不走索引

示例:

你可能感兴趣的:(mysql,concat,索引)