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编程 姜承尧 著

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值