简单:是什么让这个查询无效?

use*_*896 2 mysql indexing join

SELECT 
    t1.`id` , 
    t1.`some_key` ,  
    t1.`date` ,
    t2.`data`
FROM `table1` AS `t1`
    LEFT JOIN `table2` AS `t2` ON t2.`id` = t1.`some_key`
WHERE DATE( t1.`date` ) = DATE( NOW( ) )
Run Code Online (Sandbox Code Playgroud)

我正在尝试搜索今天添加的table1中的所有记录.我不知道记录的数量.我尝试在日期列中添加一个INDEX但是我的EXPLAIN仍然显示MySQL搜索table1中的所有n行.

编辑:::按要求解释

id  select_type     table   type    possible_keys   key     key_len     ref     rows    Extra 
1   PRIMARY     <derived2>  ALL     NULL    NULL    NULL    NULL    4   
1   PRIMARY     t2  eq_ref  PRIMARY     PRIMARY     4   t1.some_key     1   
2   DERIVED     table2  ALL     indx    NULL    NULL    NULL    5   Using where
Run Code Online (Sandbox Code Playgroud)

Joe*_*Joe 6

你正在对t1.date进行转换; 你失去了索引的好处,因为现在你的查询需要查看每一列.可以索引t1.date,但不是DATE(t1.date).