https://blog.youkuaiyun.com/qq_28289405/article/details/80576614
https://www.cnblogs.com/junwangzhe/p/6420049.html
分区是物理数据库的设计方式,还是一张表,但是表的数据存储在不同的硬盘。
分表,最终由N张表,系统读写时需要通过一定的规则找到数据需要映射到的表然后进行操作。
分库,多个数据库,每个数据库中有多张表,
分表:
优点:
单表并发能力提高,磁盘I/O提高,并发提高是单次查询的时间变短了,一个非常大的.MYD文件分摊到各个小表的.MYD中去了
读写锁影响的数据量变小
插入数据库需要重新建立索引的数据减少
实现:
实现最简单是使用merge分表,对程序代码可以做到透明
分区:
优点:突破磁盘读写能力
相对于单个文件系统或者硬盘,分区可以存储更多的数据
数据管理比较方便,清理或者飞起某年的数据,可以直接删除该日期的分区数据
精准定位分区查询数据,不需要全表扫描查询,提高数据检索效率
跨多个分区磁盘查询,提高查询吞吐量
设计聚合函数查询时,可以很容易进行数据合并
实现:
建立分区表,根一般的表没有区别。
分库:
对于时效性不高的数据,可以通过读写分离缓解数据库压力,需要注意的是在业务分区上哪些业务是允许一定延迟的,以及数据同步问题
分片:
在分布式存储系统中,数据需要分散存储在多台设备上,数据分片就是用来确定数据在多台存储设备上分布的技术。数据分片的目的是:
(1)分布均匀,每台设备上的数据量要尽可能详尽
(2)负载均衡,每台设备上的请求量要尽可能相近
(3)扩缩容时产生的数据迁移尽可能少
虚拟服务器:
https://blog.youkuaiyun.com/qq_28289405/article/details/80576614
一个VServer是一个逻辑上的存储服务器,是分布式存储系统的一个存储单元,一台物理设备上可以部署多个VServer,一个VServer支持一个写进程和多个读进程。
优点:
提高单机性能。为了不引入复杂的锁机制,采用单写进程的设计,写并发能力会受到限制,通过VServer方式吧单机上的存储资源划分为多个存储单元,这样就支持多个写进程同事工作,大大提升单机写并发能力。
部署扩展性更好。VServer的方式在部署上非常灵活,可以根据单机的资源情况来确定VServer的数量,针对不同的机型配置不同的数量,不同的机型都能充分利用机器上的资源,即在一个系统中使用多种机型,也能做到机器的负载比较均衡。