小贝_mysql分区理论学习_MySQL
mysql分区简要:一、为什么需要mysql分区二、mysql分区的类型三、mysql分区技术对比
一、为什么需要mysql分区1、首先,业务数据增大时,必然会影响数据操作。通常针对大数据,有如下优化方法: a、大表拆小表 b、sql语句优化 2、不足: a、sql语句优化可以通过增加索引等来调整,但是随着数据量增大时将会导致索引的维护代价增大 b、大表拆分小表可以在细分为垂直or水平分表。但是需要实现逻辑操作。即选择那张表 3、总结: 针对大数据,添加索引会导致索引文件大以及维护索引代价大,拆分表,就需要实现逻辑操作。因此,这里需要用到mysql分区。分区其实从本质上也是实现了拆分小表的做法。是基于物理层面上进行拆分成小表,无须实现逻辑操作,对用户而言是透明的。
二、mysql分区类型1、range分区: 基于给定连续区间的列值,把多行分配给分区 2、list分区: 类似于按range分区,区别在于list分区是基于列值匹配一个离散值集合中的某个值来进行选择 3、hash分区: 基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算,这个函数可以包含mysql中有效的、产生非负整数值得任何表达式 4、key分区: 类似于hash分区,区别在于key分区只支持计算一列或多列,且mysql服务器提供自身的哈希函数 总结: 使用优先级 range>list>hash>key hash一般用于测试分区
三、mysql分区技术对比
|