MySQL分区

阅读更多

原创转载请注明出处:http://agilestyle.iteye.com/blog/2358878

 

分区

分区是一种表的设计模式。正确的分区可以极大地提升数据库的查询效率,完成更高质量的SQL编程。但是如果错误的使用分区,或者过于迷信分区,那么分区可能带来毁灭性的结果。

 

MySQL数据库在5.1版本时添加了对分区的支持。分区的过程是将一个表或者索引分解为多个更小、更可管理的部分。就访问数据库的应用而言,从逻辑上讲,只有一个表或一个索引,但是在物理上这个表或索引可能由数十个物理分区组成。每个分区都是独立的对象,可以独自处理,也可以作为一个更大对象的一部分进行处理。

 

MySQL数据库支持的分区类型为水平分区,并不支持垂直分区。

  • 水平分区:指将同一个表中不同行的记录分配到不同的物理文件中
  • 垂直分区:指将同一个表中不同列的记录分配到不同的物理文件中

此外MySQL的分区是局部分区索引,一个分区中既存放数据又存放索引。全局分区是指,数据存放各个分区中,但是所有数据的索引放在一个对象中。目前MySQL数据库暂时不支持全局分区。

 

当前MySQL数据库支持以下几种类型的分区

  • RANGE分区:行数据基于一个给定连续区间的列值放入分区。MySQL5.5开始支持RANGE COLUMNS的分区
  • LIST分区:和RANGE分区类型一样,只是LIST分区面向的离散的值。MySQL5.5开始支持LIST COLUMNS的分区
  • HASH分区:根据用户自定义表达式的返回值来进行分区,返回值不能为负数。
  • KEY分区:根据MySQL数据库提供的散列函数来进行分区

Reference

MySQL技术内幕:SQL编程 姜承尧 著

 

 

你可能感兴趣的:(MySQL分区)