doc*_*_id 5 mysql performance performance-tuning
我有一项CRON
任务需要从 MySQL InnoDB 表中提取给定月份生日的客户。生日字段已编入索引且类型为DATE
。
过滤四月,我可以通过以下任一方式查询客户表:
SELECT *
FROM customers
WHERE birthday LIKE "2015/04/%";
Run Code Online (Sandbox Code Playgroud)
或者:
SELECT *
FROM customers
WHERE MONTH(birthday) = 4;
Run Code Online (Sandbox Code Playgroud)
你会推荐哪一个,为什么?
我会去:
SELECT *
FROM customers
WHERE MONTH(birthday) = 4;
Run Code Online (Sandbox Code Playgroud)
...因为这是按月选择的常用方法。UsingMONTH()
会调用 MySQL 中的一个内置函数,但是如果你使用LIKE
它会将它作为字符然后进行比较,因此 MySQL 不会执行一个操作,而是执行两个操作。
归档时间: |
|
查看次数: |
40643 次 |
最近记录: |