数据库
首页 > 数据库> > mysql – “使用sort_union”是什么意思?

mysql – “使用sort_union”是什么意思?

作者:互联网

(不确定这是否已经讨论过……)

在为类别构建SQL时

示例类别数据:

ID | NAME
--------------------------
1  | hardware
2  | hardware : notebooks
3  | hardware : phones
4  | hardware : desktops
5  | review
6  | review : photo gallery

硬件将成为硬件的父类别:*

当我考虑构建api来查询数据库时

desc select * from category 
where id=1 or 
name like concat((select name from category where id in(1)), '_%');

上述退货(执行计划中)

Using sort_union(PRIMARY,some_index); Using where

sort_union意味着什么?
好吗?坏?要避免?

(理解我可以将整个查询重写为更优化的方式,
但是我有一些限制要重建整个api)

mysql版本5.1

解决方法:

当你有一个where子句时,你会使用sort_union,你正在使用两个或更多的OR,​​MySQL认为它比使用index_merge更好.

有关更多信息,请访问see the MySQL docs

简而言之,它并不坏(imho);因为它会在排序联合它们之前首先从两个索引中获取行.

标签:mysql,sql-execution-plan
来源: https://codeday.me/bug/20190903/1796357.html