啊呀~忙了好一段时间~数据库的优化说了好久~没精力去动一点点,今晚突然起兴致,学习一下这个mysql的分区功能,当然,搞这个的出发点跟某司没一毛钱关系~
这个学习笔记这里只做个简单归纳, 具体可参看mysql文档 http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html
先来说说分区的一些优点:
1 与单个磁盘或文件系统分区相比,可以存储更多的数据。
2 对于那些已经失去保存意义的数据, 通常可以通过删除与那些数据有关的分区, 很容易地删除那些数据. 相反, 在某些情况下, 添加新数据的过程又可以通过为那些新数据专门增加一个新的分区, 来很方便地实现.
3 一些查询可以得到极大的优化, 这主要是借助于满足一个给定WHERE 语句的数据可以只保存在一个或多个分区内, 这样在查找时就不用查找其他剩余的分区. 因为分区可以在创建了分区表后进行修改, 所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据, 来提高那些常用查询的效率.
4 涉及到例如SUM() 和 COUNT()这样聚合函数的查询,可以很容易地进行并行处理。这种查询的一个简单例子如 “SELECT salesperson_id, COUNT(orders) as order_total FROM sales GROUP BY salesperson_id;”. 通过“并行”, 这意味着该查询可以在每个分区上同时进行, 最终结果只需通过总计所有分区得到的结果.
5 通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。
mysql5.1目前支持RANGE, HASH, LIST, KEY几种分区类型.
RANGE分区
: 基于属于一个给定连续不重叠区间的列值,把多行分配给分区. 也就是说把一个表按分区表达式划分为多个连续的区间, 分区内的行乎合该分区表达式的值给定的区间.
LIST分区
: LIST分区与RANGE分区很相似, 不过RANGE分区的定义和选择是从属于某个连续的区间值集中进行, 而LIST分区的定义和选择则是基于某列的值从属于一个值列表集(通常为数值集合)中的一个值.
HASH分区
: HASH分区主要用来确保数据在预先确定数目的分区中"平均分布". 在HASH分区中,不需要给定一个区间或列值集合, MySQL 自动完成这些工作,我们所要做的只是基于将要被哈希的列值指定一个列值(字段)或表达式, 以及指定被分区的表将要被分割成的分区数量.
KEY分区
: KEY分区类似于HASH分区, 它们的区别是HASH分区使用的用户定义的表达式,而KEY分区的哈希函数是由MySQL 服务器提供.
分享到:
相关推荐
MySQL驱动通常分为几种类型,包括JDBC驱动、ODBC驱动、PHP驱动等,它们为不同的编程语言提供了与MySQL交互的接口。在Windows环境下,`libmySQL.dll`是一个动态链接库文件,它是MySQL C API驱动的一部分,用于C或C++...
在MySQL 5.1中,有以下几个关键特性值得提及: 1. **分区表**:允许将大表分割成更小、更易管理的部分,提高了查询效率,特别是对于大数据量的处理。 2. **存储过程**:用户可以编写一组SQL语句,打包成一个可重用...
这份“mysql5.1中文帮助手册”对于那些希望深入理解和学习MySQL的用户来说,是一份非常宝贵的资源。以下将从几个主要方面详细介绍MySQL 5.1中的关键知识点。 1. **SQL语言基础**:MySQL 5.1支持标准的SQL语句,包括...
在MySQL 5.1中,有几个核心知识点是每个使用者都需要了解的: 1. **SQL语言基础**:包括数据查询语言(DQL)、数据操纵语言(DML)、数据定义语言(DDL)和数据控制语言(DCL)。例如,SELECT语句用于查询数据,...
12. **XML和JSON支持**:MySQL 5.1开始支持XML数据类型和相关的函数,尽管对JSON的支持在后续版本中才得到加强。 手册中还包含了许多其他主题,如数据库设计原则、数据库连接工具、MySQL命令行客户端的使用,以及...
MySQL支持的分区类型主要有以下几种: 1. RANGE分区:基于列值的范围来分区。可以定义一系列范围,每个分区包含了落在该范围内的数据行。例如,如果有一个日期字段,可以创建多个RANGE分区来存储特定日期范围内的...
可以通过以下几种途径获取MySQL 5.1: - **官方网站**:可以从MySQL官网下载官方分发版。 - **二进制包**:对于大多数平台,MySQL提供预编译的二进制安装包。 - **源代码**:也可以从GitHub或其他代码仓库下载源代码...
在MySQL 5.1及更高版本中,支持以下几种具体的分区方法: - **Range分区**:根据一个列的值范围进行分区。例如,根据日期的不同年份来划分分区。 - **Hash分区**:基于列值的哈希函数计算结果来进行分区。这种方式...
MySQL 5.1 引入的分区功能显著提升了大数据场景下的查询性能,尤其是涉及聚合函数(如 SUM(), COUNT())和范围查询时。此外,分区也有助于数据清理,因为可以轻松地删除过期的分区,而无需涉及复杂的 DELETE 语句。...
MySQL的表分区是一种数据库优化策略,它将一个大表分解为多个较小的、更易管理和查询的部分,以提高数据检索速度和数据库性能。这一技术自MySQL 5.1版本开始被广泛支持。表分区主要应用于大数据量的场景,通过合理...
2. **分区功能增强**:MySQL 5.1支持更多的分区类型,如线性哈希、范围、列表等,这有助于大型数据集的管理和查询性能提升。 3. **复制功能改进**:添加了半同步复制(Semi-Synchronous Replication),确保至少一...
在MySQL 5.1中,有几个重要的知识点是开发者和管理员必须掌握的: 1. **SQL语法**:MySQL遵循标准SQL语法,包括数据查询语言(DQL)、数据操作语言(DML)、数据定义语言(DDL)和数据控制语言(DCL)。例如,...
通过阅读"MySql5.1.chm" 文件,学习者可以深入理解这些概念,并通过实际操作来巩固理论知识。手册通常还会包含大量实例和实战指导,帮助读者更好地应用所学内容。无论是初学者还是经验丰富的开发者,这份参考手册都...
MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它由瑞典MySQL AB公司开发,后被Oracle公司收购。MySQL以其高效、稳定、易用和免费(对于大多数商业用途)的特点,成为了许多企业和开发者的选择,尤其在...
1.8 性能测试:mysql5.5与mysql5.1 60 第2章 半同步复制 62 2.1 半同步复制简介 62 2.2 半同步复制安装配置 63 2.3 参数说明 63 2.4 功能测试 64 2.4.1 如何验证半同步复制是否正常工作 64 2.4.2 半同步复制...
分区技术在 MySQL 5.1 及以后的版本中得到了支持,提供了四种主要的分区类型:RANGE、LIST、HASH 和 KEY。 1. **RANGE分区**: RANGE 分区是根据列值属于特定连续区间来分配数据的。例如,如果有一个`store_id`列...
MySQL支持以下几种分区类型: 1. **RANGE分区**:根据列值落在预定义的连续区间内进行分区。 2. **LIST分区**:与RANGE类似,但基于列值匹配离散的值集合。 3. **HASH分区**:根据用户定义的表达式返回的非负整数值...
MySQL支持多种分区类型,包括: 1. **范围(RANGE)**分区:根据某个列的值的范围进行分区。例如,可以将用户表按用户ID的范围分成几个分区,如p0存储ID小于3的用户,p1存储ID在3到6之间的用户等。 ```sql CREATE ...
- **转换数据**:根据MySQL与Sybase ASE之间的数据类型差异,进行必要的转换。 - **导入数据**:利用Sybase ASE提供的工具(如bcp或isql)将数据导入新系统。 ##### 2.3 应用迁移 应用程序需要进行适应性调整,...