数据库垂直分割、水平分割、库表散列

一般对表进行水平分割和垂直分隔会极大的提高 数据库性能。
  1、水平分割:
     一般适用于下列情况:
    A、表很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数,提高了查询速度
    B、表中的数据本来就有独立性,例如表中分别记录了各个地区或不同时期的数据;或者有些数据常用,有些数据不常用
    C、需要把数据存放到多个介质上。
     水平分割会给应用增加复杂度,它通常在查询时,需要多个表名,查询所有数据的话,就需要union操作。在许多数据库应用中,这种复杂性会超过它带来的优点,因为只要索引关键字不大,则在索引用于查询时,表中增加2到3倍的数据量,查询时,也就增加读一个索引层的磁盘次数,IO交互会比较多。
 
  2、垂直分割:
     一个表中某些列很常用,另外一些列不常用,则可以进行垂直分割,把主码和一些列放到一个表,然后把主码和另外的列放到另外一个表中。
     这样做的好处在于:数据行数会变小,一个数据页句能存放更多的数据,在查询时,会减少IO次数。
     缺点在于:需要管理冗余列,查询所有数据需要join操作。      
 
  3、库表散列:
     一般来说,我们会按照业务或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列,散列128张表,则应就能够低成本的提升系统的性能并且有很好的扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值