优化子查询

因为数据库的开发一直都在进行中,因此没有优化技巧是长期可靠的。下面提供了一些您可能感兴趣的技巧。

将子句从子查询外部移动到内部。例如,使用以下查询:

1. SELECT * FROM t1
2.   WHERE s1 IN (SELECT s1 FROM t1 UNION ALL SELECT s1 FROM t2);

而不是下面这个查询:

1. SELECT * FROM t1
2.   WHERE s1 IN (SELECT s1 FROM t1) OR s1 IN (SELECT s1 FROM t2);

再来一个示例,请使用以下查询:

1. SELECT (SELECT column1 + 5 FROM t1) FROM t2;

而不是下面这个查询:

1. SELECT (SELECT column1 FROM t1) + 5 FROM t2;

官方网址: https://dev.mysql.com/doc/refman/8.0/en/optimizing-subqueries.html