在sql语句中使用 like模糊查询时,应该尽量避免%%,因为模糊查询是比较慢的,当出现这样的情况时,应该考虑优化。
举个例子:我在表中查询2012 年创建的记录
SELECT * FROM `component_data` WHERE creation_date LIKE ‘2012%‘;
得到的时间
[SQL] SELECT * FROM `component_data` WHERE creation_date LIKE ‘2012%‘; 受影响的行: 0 时间: 0.500ms
考虑优化之后的sql如下
SELECT * FROM `component_data` WHERE creation_date>=‘2012-01-01‘ AND creation_date<‘2013-01-01‘;
运行结果
[SQL] SELECT * FROM `component_data` WHERE creation_date>=‘2012-01-01‘ AND creation_date<‘2013-01-01‘; 受影响的行: 0 时间: 0.328ms
可以看出,优化之后的提升是很大的。当查询的结果比较多时,这个差异更为明显。我这个查询只有9000多条数据。
我只是举了个例子。当遇到like查询时,大家应该充分发挥你的聪明才智,具体问题进行具体对待,进行优化