MySql选择查询优化

时间:2017-03-01 01:46:15

标签: 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 
LIMIT 10;

子查询返回第二个表中与第一个表中的日期匹配的列值。 这个查询没有以优化的速度运行,你能告诉我什么是即兴表演的方法吗?

干杯

1 个答案:

答案 0 :(得分:0)

这两个表加SHOW CREATE TABLE

会有所帮助EXPLAIN SELECT ...

所需索引:

t1: INDEX(category_id, date)
t2: INDEX(date)

如果没有ORDER BY,则子查询没有意义 - 其中" 1"你想要一排吗?