它是一种物理数据库设计技术,MySQL数据库默认使用水平分区。
2.1 水平分区:对表的行进行分区,不同分组中物理分隔的数据组合在一起,表中的所有列都可以在每个分区找到,维持了表的属性结构。
2.2 垂直分区:把某些特定的列划分到特定的分区,减少表的宽度,每个分区都保存了其中列所在的行。
分区模式:
range:按某个或某些列的范围划分,如年份
hash:根据某些列的hash值进行分区划分,比如海量数据的去重聚合
key:也是hash,不过使用系统的hash函数
list:自定义某列的属性值范围,落在这些值内的行划到一组
优点:
性能:海量数据分区,提高检索速度,比如100万数据分成10个分区,如果要找一个数之前知道它在哪个分区,那么效率比在100万数据中搜索快过很多。
管理:建完分区后,数据库负责分区的管理。对DBA来说,既减少管理的数据量又保证数据完整性和关联性。
转载链接:https://www.jianshu.com/p/aacb7daa3698
数据库扩展大概分为以下几个步骤:
读写分离:
当数据库访问量还不是很大的时候,我们可以适当增加服务器,数据库主从复制的方式将读写分离;
垂直分区:
当写入操作一旦增加的时候,那么主从数据库将花更多的时间的放在数据同步上,这个时候服务器也是不堪重负的;那么就有了数据的垂直分区,数据的垂直分区思路是将写入操作比较频繁的数据表,如用户表_user,或者订单表_orders,那么我们就可以把这个两个