相关疑难解决方法(0)

有没有办法强制执行MySQL执行顺序?

我知道我可以通过使用FORCE INDEX (abc)关键字来改变MySQL执行查询的方式.但有没有办法改变执行顺序?

我的查询如下所示:

SELECT c.*
FROM table1 a
INNER JOIN table2 b ON a.id = b.table1_id
INNER JOIN table3 c ON b.itemid = c.itemid
WHERE a.itemtype = 1
  AND a.busy = 1
  AND b.something = 0
  AND b.acolumn = 2
  AND c.itemid = 123456
Run Code Online (Sandbox Code Playgroud)

我有一个关键用于我使用的每个关系/约束.如果我在这个语句上运行解释,我看到mysql首先开始查询c.

id    select_type    table    type
1     SIMPLE         c        ref
2     SIMPLE         b        ref
3     SIMPLE         a        eq_ref
Run Code Online (Sandbox Code Playgroud)

但是,我知道在命令中查询 a -> b -> c会更快(我已经证明了)有没有办法告诉mysql使用特定的顺序?

更新:我知道这a -> b -> c更快.

上面的查询需要1.9秒才能完成并返回7行.如果我将查询更改为

SELECT …
Run Code Online (Sandbox Code Playgroud)

mysql performance sql-execution-plan

24
推荐指数
1
解决办法
1万
查看次数

如何判断mysql索引是否完全适合内存

有没有办法确定mysql索引是否完全适合可用内存?如果是这样,我将如何:

  • 确定mysql索引的大小
  • 确定应用程序的可用内存
  • 确定索引是否完全适合内存

mysql sql indexing

24
推荐指数
1
解决办法
1万
查看次数

标签 统计

mysql ×2

indexing ×1

performance ×1

sql ×1

sql-execution-plan ×1