首页/数据/SQL 速查/强制连接顺序:STRAIGHT_JOIN 与提示
本包目录(311 条)

强制连接顺序:STRAIGHT_JOIN 与提示

MySQL 可用 STRAIGHT_JOIN 强制按书写顺序连接,用于优化器偶发选错顺序的场景;PostgreSQL 一般通过统计信息与规划参数间接影响。

SQL 速查数据更新于 2026-10-12

MySQL

MySQL
SELECT STRAIGHT_JOIN u.name, o.amount
FROM users u
JOIN orders o ON o.user_id = u.id
WHERE u.id = 42;

表提示

表提示
SELECT *
FROM small s
JOIN big b FORCE INDEX (idx_k) ON b.k = s.k;
MySQLSTRAIGHT_JOIN 关键字;USE/FORCE/IGNORE INDEX 提示
PostgreSQL无等价逐条强制语法;依赖统计信息与 join_collapse_limit 等参数
代价强制手段会随数据分布变化失效,属排查工具

易错点

  • STRAIGHT_JOIN 是排查手段而非长期方案,统计信息更新后应移除并复核
  • 索引提示写在表名(含别名)之后,位置写错会直接语法报错

数据来源与参考

  • MySQL 8.0 Reference Manual · JOIN · STRAIGHT_JOIN
  • PostgreSQL Documentation · Planner Method Configuration
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌