失效链接处理 |
SQL优化培训文档 PDF 下载
本站整理下载:
相关截图:
主要内容:
1.2.3 、 纵 向拆分
纵向拆分方法:把不需要用于查询的大字段,放到另外一个新建的附属表中,如
feelingStructured 表和 Auto 表。这样就将 Evaluation 表的数据内容减少到最少,存储块中可
以多存储许多数据行,减少程序读取存储块的个数。
资源由 www.eimhe.com 美河学习在线收集提供
1.2.4 、 横 向拆分
横向拆分方法:表分区,表分区的条件,一张数据表的行数至少要达 3000W 行以上的数据,
就可以考虑做表分区了。但这不是绝对,如果表的数据行内容特别多,查询特别慢时,也可
以尽早做表分区。
注意问题:普通表在查询时,会比分区表要快一些,因为基于分区表的查询会遍历所有的分
区表,而普通表只查询了普通表一个表。
解决办法,在查询条件中加入分区条件,这样查询就会落入指定的分区中,不用遍历所有的
分区,但问题是,是不是所有的查询都能加入分区条件呢。只要进行了表分区,那么 SQL
的前提条件就是所有 SQL 都要加上分区条件,除非个别的汇总,统计类的 SQL。
1.2.5 、 数据库分库
数据库分库:当一个台数据库表服务器访问压力过大,数据量过大时,就需要考虑进行数据
库分库,数据库分库条件和表分区的逻辑是比较像的。根据业务条件,如地区,时间,进行
拆分。
1.2.6 、 读索引为什么比读表快
这里面引发出一个触类旁通的问题,为什么索引查询会比直接查数据要快?因为索引做为一
个独立的数据存储区,也是跟数据表存储块一样,以 8KB 为一个存储块,一个 IO 读取一次
存储块,而索引中只有简单的几个索引列,而不是整个数据行的数据,所以它一个 IO 读取
的数据会非常多,这样它的 IO 就会非常少,加快了查询速度。
1.2.7 、 数据压缩的利与弊
数据压缩和索引压缩会使存储空间和逻辑读减少,但是会使表更新的开销加大,查询耗费的
CPU 也更多,所以压缩表一般适合在更新比较少,且 CPU 消耗不大,IO 消耗很大系统中适
用。像企业管理软件就比较适用于数据压缩和 BI 系统。如果当前系统的 IO 并不高,但 CPU
非常繁忙,则不应该采用表和索引压缩,传统数据库的压缩率并不是太高,真正压缩率比较
高的应该是 BI 的数据。
2 索引优化
|