0

我在这里偶然发现了我不知道存在的optimizer hintsMySQL 功能,并试图弄清楚如何将其与.Yii2

MySQL 支持使用 设置特定选项optimizer hints,例如:

SELECT /*+ NO_RANGE_OPTIMIZATION(t3 PRIMARY, f2_idx) */ f1
  FROM t3 WHERE f1 > 30 AND f1 < 33;
SELECT /*+ BKA(t1) NO_BKA(t2) */ * FROM t1 INNER JOIN t2 WHERE ...;
SELECT /*+ NO_ICP(t1, t2) */ * FROM t1 INNER JOIN t2 WHERE ...;
SELECT /*+ SEMIJOIN(FIRSTMATCH, LOOSESCAN) */ * FROM t1 ...;
EXPLAIN SELECT /*+ NO_ICP(t1) */ * FROM t1 WHERE ...;
SELECT /*+ MERGE(dt) */ * FROM (SELECT * FROM t1) AS dt;
INSERT /*+ SET_VAR(foreign_key_checks=OFF) */ INTO t2 VALUES(2);

Yii2设置这些的本地方法query hints吗?

4

1 回答 1

1

您可以使用第二个参数select()来传递选择选项:

$query = (new Query())
    ->select('f1', '/*+ NO_RANGE_OPTIMIZATION(t3 PRIMARY, f2_idx) */')
    ->from('t3'); 
于 2021-08-02T10:54:26.787 回答