这是我的DB体系结构:
以下是我的测试:
MYSQL在这种情况下是如何工作的?为了加快速度,我必须如何设置视图?
我使用5.7.14版本。
查询解释返回:
id“:1”select_type“:主”表“”空“分区”“空”类型“空"possible_keys”空“键"key_len”空"ref“空行”空“过滤”空“额外,匹配const表中的行”\x“"id”:2 "select_type":UNION "table“llx_product_local分区”空“类型”所有"possible_keys“空”键"key_len“空"ref”空行“100”过滤“额外”空。
发布于 2022-06-18 07:13:14
在这种情况下MySQL是如何工作的?
通常,临时表中的MySQL 实现全部结果 of UNION。这解释了为什么查询速度比预期慢得多。
在MySQL 5.7.3中添加的改进允许一些简单的联合跳过物化。这包括这样一种情况,即联合显示为带有LIMIT子句的顶级语句。遗憾的是,当封装在视图中时,它并不适用。
我必须如何设置视图才能加快速度?
即使在MySQL 8中,您也无法完全避免这个问题,优化器只是不具备处理这种情况的能力。
视图中的每个联合部分都有硬编码限制,对于不同的公共限制可能有不同的视图,或者使用模拟黑客中的一个参数化视图。
https://dba.stackexchange.com/questions/181828
复制相似问题