MySql 数据库分区
来源:互联网 发布:mac更换硬盘克隆系统 编辑:程序博客网 时间:2024/05/16 04:18
几天前,突然对数据量比较大数据库优化非常感兴趣,就着手查了一些资料,其中,就有一份资料是说数据库分区。在这篇文章中,我宏观上介绍一下mysql数据库的分区。
一、什么是表分区
通俗地讲表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。
二、为什么要对表进行分区
为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。分区的一些优点包括:
1)、与单个磁盘或文件系统分区相比,可以存储更多的数据。
2)、对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那些数据。相反地,在某些情况下,添加新数据的过程又可以通过为那些新数据专门增加一个新的分区,来很方便地实现。通常和分区有关的其他优点包括下面列出的这些。MySQL分区中的这些功能目前还没有实现,但是在我们的优先级列表中,具有高的优先级;我们希望在5.1的生产版本中,能包括这些功能。
3)、一些查询可以得到极大的优化,这主要是借助于满足一个给定WHERE语句的数据可以只保存在一个或多个分区内,这样在查找时就不用查找其他剩余的分区。因为分区可以在创建了分区表后进行修改,所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据,来提高那些常用查询的效率。
4)、涉及到例如SUM()和COUNT()这样聚合函数的查询,可以很容易地进行并行处理。这种查询的一个简单例子如 “SELECT salesperson_id, COUNT (orders) as order_total FROM sales GROUP BY salesperson_id;”。通过“并行”,这意味着该查询可以在每个分区上同时进行,最终结果只需通过总计所有分区得到的结果。
5)、通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。
三、分区类型
LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。
HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。
KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。
对于mysql数据库分区的实例 我还在研究中。
0 0
- mysql 数据库分区详解
- mysql 数据库分区
- MySql 数据库分区
- mysql数据库分区技术
- mysql数据库分区技术
- mysql 数据库表分区
- mysql 数据库分区操作
- mysql数据库表分区小结
- MYSQL数据库创建表分区
- MySql数据库分区分表
- mysql数据库中分区的概念
- mysql 并行数据库与分区(Partition)
- MySql数据库分表分区方法
- Mysql数据库表分区深入详解
- zabbix使用mysql数据库 对表分区
- MySQL数据库分区(Database partition)
- Mysql数据库分表以及表分区
- 【MYSQL数据库】MYSQL学习笔记-mysql分区基本操作
- 嵌入式题
- 数据挖掘算法【一】c4.5算法的理解
- c语言中qsort的使用方法
- Gerrit 手动安装
- iOS数据库SQL
- MySql 数据库分区
- iOS二维码的扫描 全屏显示局部扫描
- mysql 创建字符串函数
- iOS之数据存取
- eclipse复制项目遇到的问题
- 初识JavaBean和EL表达式笔记
- linux 多工程的环境变量配置方法
- 单选按钮的操作
- 第一天