数据库分区

栏目: 数据库 · 发布时间: 6年前

定义:数据库分区是一种对表的分割,分区对访问用户是透明的。分区能够提高数据库的读写性能,提高数据库的效率,但又不是总能提供效率。

优缺点:

1、分区技术就是把一个大块数据分成n小块,这样查询的时候可以快速定位到某一小块上,在小块中寻址可以快很多。另一方面CPU比磁盘IO快很多倍,而硬件上又有多个磁盘,或者是RAID(廉价磁盘冗余阵列),可以让数据库驱动CPU同时去读写不同的磁盘,这样才有可能可以提高效率。

2、分区有时候不能提高读写效率,例如按照日期字段去分区MSDN例子,这个实例中是按照记录的生成时间来分区的,把一年的数据分割成12个分区,每月一个。这样的分区导致分区并不能实现CPU同步写并提高写入性能,因为在同一个时段CPU总是要写入到最新的那一个分区对应的磁盘中。而且这样也不一定能够提高读取性能,具体要看根据什么字段来查询,如果是根据时间来查询,根据时间生成报表那么这种分区肯定会提高查询的效率,但是如果是按照某个客户查询客户最近1年内的账单数据,这样数据分布到不同的分区上,这样的话效率就不一定能提高了,这要看数据在同一个分区上连续分布的读性能高,还是CPU从几个磁盘上同步读取,然后在合并数据的性能更高一些,这和读取数据的记录数也有关系。

如何使用:

具体要是分区和涉及的业务而定。例如:做一个论坛,对论坛的帖子和回复表进行分区。论坛中最常见的

写操作:

1)发帖 

2)回复帖子,

最常见的读操作是

1) 根据帖子id显示帖子详情和分页的帖子回复 

2) 根据帖子版面帖子列表页根据版面id分页读取帖子列表数据

怎么分区更合适呢?(现在还没有准确答案)

方案1. 根据帖子ID区域段分区(1-300w一个分区、300w-600w一个分区⋯),这样理论上可以提高帖子详细页的读取速度,而对于写操作性能没有益处,对于根据版面id读取帖子列表页有可能有益

方案2. 根据版面id进行分区,这样对于写性能应该有提高,不同的分区对应不同的版面,当有两个版面同时有发帖回帖操作时,有可能可以并发写。对于根据版面id获得帖子列表页数据也可以提高性能,而对于帖子详细信息页没有性能影响。

多大数据库需要分区:

目前无准确定义,经验值一个表的记录超过1000w,并且每个月百万数据量增长,那么就有可能需要分区。


以上所述就是小编给大家介绍的《数据库分区》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

PYTHON3:数据分析与机器学习实战

PYTHON3:数据分析与机器学习实战

龙马高新教育 / 北京大学出版社 / 2018-9-1 / 69.00

机器学习(Machine Learning, ML)是一门多领域交叉学科,是人工智能的核心,其应用遍及人工智能的各个领域,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。在机器学习过程中,需要使用大量数据,而数据分析是指用适当的方法对收集的大量数据进行分析,提取有用信息并形成结论,进而对数据加以详细研究和概括总结的过程。本书结合机器学......一起来看看 《PYTHON3:数据分析与机器学习实战》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具