当前位置:Gxlcms > 数据库问题 > 数据库表常见分割技术-理论

数据库表常见分割技术-理论

时间:2021-07-01 10:21:17 帮助过:5人阅读

根据某些条件将数据放到二个伙多个堵路的表中。即按计量进行分割,不同的记录 可以用分开保存,每个字表的列数相同。水平切割将表分为多个表。每个表包含 的列数相同,单身数据行更少。例如,可以将一个包含了十亿行的表水平分区成12个 表,每个小表表示特定年份内一个月的数据。任何需要特定月份数据的查询只需查询 引用相应月份的表。 通常用来水平分割表的条件有:日期时间维度、地区维度等 水平分割通常在下面的情况下使用: 1、表数据量很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低 了索引的层数,加快了查询速度 2、表中的数据本来就有独立性,例如表中分别记录了各个地区的数据或不同时期的数据 3、需要把数据存放到多个介质上 4、需要把历史数据和当前数据拆分开   2、垂直分割: 把主键列和一列放到一个表中,然后把主键列和另外的一些列放到另外一个表中。将原始表 分成多个只包含较少列的表。如果一个表中某些列常用,而另外一些列不常用,责可以采用。 优点: 1、垂直分割可以是行数变小,一个数据块就能存放更多的额数据,在查询时就会减少I/O次数 2、垂直分割表可以达到最大化利用cache的目的 缺点: 1、垂直分割后,主键出现冗余,需要管理冗余列 2、会引起表连接join操作,需要从业务上规避   3、库表散列: 表散列和水平分割相似,但没有水平分割那样的明显分割界限,采用hash算法吧数据分散到各个表中,这样IO就更加均衡。一般来说,按业务或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列。比如用户表按照用户ID进行散列,散列128张表,则应就能低成本的提升系统的性能,并且很好的扩展性

数据库表常见分割技术-理论

标签:最大化   分区   包含   常用   独立   利用   gpo   主键   相同   

人气教程排行