使用MySQL并集避免顺序存储

数据库 MySQL
表的顺序存取对查询效率可能产生致命的影响,如果使用MySQL并集,就可以消除对大型表行数据的顺序存取,让查询更有效率。

如果使用MySQL并集,就是一避免顺序存取,提高查询语句的效率,下面就为您介绍这种使用MySQL并集消除对大型表行数据的顺序存取的方法。

在嵌套查询中,对表的顺序存取对查询效率可能产生致命的影响。比如采用顺序存取策略,一个嵌套3层的查询,如果每层都查询1000行,那么这个查询就要查询10亿行数据。避免这种情况的主要方法就是对连接的列进行索引。例如,两个表:学生表(学号、姓名、年龄……)和选课表(学号、课程号、成绩)。如果两个表要做连接,就要在“学号”这个连接字段上建立索引。

还可以使用MySQL并集来避免顺序存取。尽管在所有的检查列上都有索引,但某些形式的where子句强迫优化器使用顺序存取。下面的查询将强迫对orders表执行顺序操作:   SELECT * FROM orders WHERE (customer_num=104 AND order_num>1001) OR order_num=1008

虽然在customer_num和order_num上建有索引,但是在上面的语句中优化器还是使用顺序存取路径扫描整个表。因为这个语句要检索的是分离的行的集合,所以应该改为如下语句:

SELECT * FROM orders WHERE customer_num=104 AND order_num>1001

UNION

SELECT * FROM orders WHERE order_num=1008

这样就能利用索引路径处理查询。
 

 

 

【编辑推荐】

5种常见的MySQL日志类型

mysql日志文件的详细说明

重定位MySQL数据目录的方法

MySQL数据库表的表示

MySQL数据文件的三种修复方法

责任编辑:段燃 来源: 互联网
相关推荐

2020-10-13 08:00:00

公共数据集Google Tren大数据

2022-08-22 07:58:14

容器云存储开发

2011-05-16 13:15:55

MySQL存储字符集

2011-08-25 09:31:43

JDBC调用Oracl

2020-11-02 13:24:49

MySQL数据库存储

2013-01-21 13:38:27

IBMdW

2012-03-09 17:35:43

ibmdw

2018-05-03 15:04:06

云存储数据云端

2017-08-30 17:47:35

MySql索引

2018-04-04 12:21:39

2018-04-04 09:20:55

2022-09-19 09:19:24

云存储TCO云服务

2009-01-19 08:59:04

PHP调用MySQL存储过程MySQLi扩展

2021-04-20 09:18:41

顺序存储结构

2020-08-10 06:47:31

CSSTRouBLe前端

2021-11-02 10:20:27

CIOIT董事会

2021-11-14 15:13:18

存储数据存储技术

2019-11-01 16:23:52

存储云存储数据

2019-08-22 06:58:24

存储系统停机事故数据恢复

2020-07-30 11:39:06

网络攻击数据存储数据安全
点赞
收藏

51CTO技术栈公众号