数码资讯
按组方案MySQL优化
执行组子句的最一般方法是首先扫描整个表,然后创建一个新的临时表。表中每组的每一行都应该是连续的。最后,使用这个临时表来查找组并应用聚合函数(如果有聚合函数)。在某些情况下,MySQL可以通过访问索引而得到结果而不创建临时表。 1.loose索引扫描 1。满意的条件 查询指向一个表。 组使用索引中最左
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
执行组子句的最一般方法是首先扫描整个表,然后创建一个新的临时表。表中每组的每一行都应该是连续的。最后,使用这个临时表来查找组并应用聚合函数(如果有聚合函数)。在某些情况下,MySQL可以通过访问索引而得到结果而不创建临时表。
1.loose索引扫描
1。满意的条件
查询指向一个表。
组使用索引中最左边的前缀。
只能使用MIN()和马克斯()聚合函数,它们都指向同一列。
2。例子
表T1(C1,C2,C3,C4)有一个索引idx(C1,C2,C3):
从C1组选择C1,C2,C2;
从T1中选择不同的C1,C2;
从C1组中选择C1,min(C2);
从T1中选择C1、C2,其中C1组为C1,C2为;
从T1中选择max(C3)、min(C3)、C1、C2,其中C2常量;
从T1中选择C2,其中C1组为C1,C2为;
从T1中选择C1、C2,其中C1 = const组由C1,C2;
不满意的条件的例子:
1。除了MIN()或马克斯(),还有其他的累积函数,如:
从C1组中选择C1,和(C2);
2中的域。按组子句不引用索引的开始,例如:
从t1组选择C2,C3,C1,C2;
3。查询是指组后面的键的一部分,不等于常量相等,例如:
从C1组中选择C1,C3,C1,C2;
二、紧凑型指数扫描
如果不满足松散索引扫描的条件,则组的执行仍然不能创建临时表。如果WHERE子句中有范围条件,则该方法只读取满足这些条件的关键字。
否则,将对索引进行扫描。此方法读取WHERE子句定义的范围。
1中存在漏洞。组,但它已覆盖条件C2 = A。
选择C1,C2,C3从T1 C2 = 'a'group C1。
2。组对最左边的前缀不满意,但是有一个条件提供元素的常量:
选择C1,C2,C3从T1 C1 = 'a'group C2。
1.loose索引扫描
1。满意的条件
查询指向一个表。
组使用索引中最左边的前缀。
只能使用MIN()和马克斯()聚合函数,它们都指向同一列。
2。例子
表T1(C1,C2,C3,C4)有一个索引idx(C1,C2,C3):
从C1组选择C1,C2,C2;
从T1中选择不同的C1,C2;
从C1组中选择C1,min(C2);
从T1中选择C1、C2,其中C1组为C1,C2为;
从T1中选择max(C3)、min(C3)、C1、C2,其中C2常量;
从T1中选择C2,其中C1组为C1,C2为;
从T1中选择C1、C2,其中C1 = const组由C1,C2;
不满意的条件的例子:
1。除了MIN()或马克斯(),还有其他的累积函数,如:
从C1组中选择C1,和(C2);
2中的域。按组子句不引用索引的开始,例如:
从t1组选择C2,C3,C1,C2;
3。查询是指组后面的键的一部分,不等于常量相等,例如:
从C1组中选择C1,C3,C1,C2;
二、紧凑型指数扫描
如果不满足松散索引扫描的条件,则组的执行仍然不能创建临时表。如果WHERE子句中有范围条件,则该方法只读取满足这些条件的关键字。
否则,将对索引进行扫描。此方法读取WHERE子句定义的范围。
1中存在漏洞。组,但它已覆盖条件C2 = A。
选择C1,C2,C3从T1 C2 = 'a'group C1。
2。组对最左边的前缀不满意,但是有一个条件提供元素的常量:
选择C1,C2,C3从T1 C1 = 'a'group C2。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。