MySql选择查询优化

MySql选择查询优化,mysql,select,query-optimization,Mysql,Select,Query Optimization,我最近在一次办公室讨论中遇到一个问题 SELECT t1.id, t1.name, t1.date AS date_filter, (SELECT t2.column_x FROM table_2 t2 WHERE t2.date = date_filter LIMIT 1 ) AS column_x FROM table_1 t1 WHERE t1.category_id = 10 ORDER BY t1.date

我最近在一次办公室讨论中遇到一个问题

SELECT t1.id, t1.name, t1.date AS date_filter, 
        (SELECT t2.column_x 
         FROM table_2 t2 
         WHERE t2.date = date_filter LIMIT 1
        ) AS column_x 
FROM table_1 t1 
WHERE t1.category_id = 10 
ORDER BY t1.date 
LIMIT 10;
子查询从第二个表返回与第一个表的日期匹配的列值。 这个查询没有以优化的速度运行,你们能告诉我什么是即兴表演的方法吗

干杯

让两个表都显示CREATE TABLE,再加上EXPLAIN SELECT

所需索引:

t1: INDEX(category_id, date)
t2: INDEX(date)
如果没有ORDER BY,子查询就没有意义-您想要哪一行