多表关联查询,一张表有几百万条数据,然后按时间过滤近3个月的数据。但是数据库库存的时间字段是varchar,必须转换成时间类型。这不可能吗?你去索引了吗?使用explain看到的结果是全表扫描,查询时间很长。有什么好的优化方案吗?
目前写的查询语句大概是这样的。表 C 是一个大数据表:
select A.*
from A
内联接 B on B.eid=A.eid
左联接 (
select eid from C where STR_TO_DATE(时间,'%Y-%m-%d') > DATE_ADD(NOW(), INTERVAL -3 MONTH)) C on C.eid=B.eid