码迷,mamicode.com
首页 > 数据库 > 详细

mysql分区性能认识

时间:2015-08-18 16:43:19      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

一,分区概念

    分区允许根据指定的规则,跨文件系统分配单个表的多个部分。表的不同部分在不同的位置被存储为单独的表。

    分区和分表的区别

    分区:1>一张数据表  2>没有数据重复的风险  3>写入一张表  4>强制的约束限制

    分表:1>多张数据表,2>重复数据的风险 3>写入多张表  4>没有同意的约束限制

    MySQl支持RANGE,LIST,HASH,KEY分区类型,其中以RANGE最为常用;

    Range(范围)--这种模式允许将数据划分不同范围。例如可以将一个表通过年份划分成若干个分区。

    Hash(哈希)--这种模式允许通过对表的一个或多个列的Hash Key进行计算,最后通过这个Hash码不同数值对应的数据区域进行分区。例如可以建立一个对表主键分区的表。

    Key(键值)--上面Hash模式的一种延伸,这里的Hash Key是MySQl系统产生的。

    List(预定义列表)--这种模式允许系统通过预定义的列表的值来对数据进行分割。

    Composite复合模式)--以上模式的组合使用

二、分区能做什么 

    1,逻辑数据分割

    2,提高单一的写和读应用速度

    3,提高分区范围度查询的速度

    4,分割数据能够有多个不同的物理文件路径

    5,高效的保存历史数据

    6,一个表上的约束检查

    7,不同的主从服务器分析策略,例如master按Hash分区,salve按range分区

三,分区的限制

    1,只能对数据表的整型列进行分区,或者数据列可以通过分区函数转化成整型列

    2,最大分区数目不能超过1024

    3,如果含有唯一索引或者主键,则分区列必须包含在所有的唯一索引或者主键在内

    4,不支持外键

    5,不支持全文索引(fulltext)

    6,按日期进行分区非常适合,因为很多日期函数可以用。但是对于字符串来说合适的分区函数不太多

四,什么时候使用分区

    1,海量数据表

    2,历史表快速的查询,可以采用ARCHIVE+PARTITION的方式。

    3,数据表索引大于服务器有效内存

    4,对于大表,特别是索引远远大于服务器有效内存时,可以不用索引,此时分区效率会更有效


mysql分区性能认识

标签:

原文地址:http://my.oschina.net/zhengyp/blog/494038

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!