我的查询是为了:
- 过滤人们不正确的日期,以便它只计算具有正确日期“DAY-MONTH-YEAR”的人(1986 年 12 月 2 日)
- 计算两个参数之间的年龄。
我不知道 1.029 SECs 对于这种类型的查询是否正常,或者我做错了什么,使得速度有点慢。如果我做了一些可以优化的事情,谁能给我建议?
就目前而言,我的查询需要( 870,968 total, Query took 1.0297 sec)
,实际查询是
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(STR_TO_DATE(m.m_dob, '%d-%b-%Y'))), '%Y')+0 AS age
FROM impressions AS i, mariners AS m
WHERE STR_TO_DATE(m.m_dob, '%d-%b-%Y') IS NOT NULL
AND m_dob != ''
AND DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(STR_TO_DATE(m.m_dob, '%d-%b-%Y'))), '%Y')+0 BETWEEN 13 AND 50
ORDER BY `age` DESC