优化子查询
因为数据库的开发一直都在进行中,因此没有优化技巧是长期可靠的。下面提供了一些您可能感兴趣的技巧。
将子句从子查询外部移动到内部。例如,使用以下查询:
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