`
lu930124
  • 浏览: 28342 次
  • 性别: Icon_minigender_2
  • 来自: 廊坊
文章分类
社区版块
存档分类
最新评论

MySql 数据库分区

 
阅读更多

几天前,突然对数据量比较大数据库优化非常感兴趣,就着手查了一些资料,其中,就有一份资料是说数据库分区。在这篇文章中,我宏观上介绍一下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)、通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。


三、分区类型


RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。
LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。
HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。
KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。

对于mysql数据库分区的实例 我还在研究中。


分享到:
评论

相关推荐

    MySQL数据库分区技术

    MySQL数据库分区技术,解决多并发问题,详细描述分区流程及操作步骤

    什么是分表和分区 MySql数据库分区和分表方法

    主要为大家详细介绍了MySql数据库分区和分表方法,告诉大家什么是分表和分区,mysql分表和分区有什么联系,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    mysql 数据库表分区

    php for mysql的表分区类,为mysql的大数据查询提供分区支持. 该类包含追加 创建 删除分区方法.可以通过索引 分类等字段为条件对数据库物理文件分离. 数据表的查询不受任何影响

    MySQL数据库分区功能的使用教程

    主要介绍了MySQL数据库分区功能的使用教程,文中特别讲解了MySQL分表和分区的区别以及联系,需要的朋友可以参考下

    mysql数据库表分区教程

    mysql数据库表分区教程,详细说明mysql表分区的每一个步骤

    MySQL分区表自动创建及删除存储过程

    用存储过程实现了MySQL数据库分区表的自动创建和自动删除功能。亲测有效。希望有用。

    zabbix 5.0 mysql 数据库分表操作详细流程

    其中有每个命令的使用说明与注释。并增加了清理数据的方式。以及导入输入的注意事项

    MySQL 数据库分表分区.pdf

    日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致...分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率

    mysql数据库应用与管理视频教程详细完整版

    内容包括dba视频教程中的mysql数据库应用与管理,第一章:配置mysql服务器 第二章:获取元数据 第三章:存储引擎 第四章:隔离级别与锁 第五章:使用分区 第六章:导出与导入数据 第七章:备份与恢复 第八章:使用...

    MYSQL数据库优化秘籍

    MYSQL数据库优化秘籍,大牛出的,值得你反复研读 MySQL在Linux环境下的安装 文件引擎MyISAM与InnoDB比较 LOAD DATA INFILE/mysqldump DBA的分析命令 MySQL的系统配置参数、诊断操作系统的状态 MySQL的分库分表,分区...

    创建mysql表分区的方法

    表分区的测试使用,主要内容来自于其他博客文章以及mysql5.1的参考手册mysql测试版本:mysql5.5.28mysql物理存储文件(有mysql配置的datadir决定存储路径)格式简介数据库engine为MYISAMfrm表结构文件,myd表数据...

    Mysql数据库从入门到精通.rar

    1.mysql 备份数据 2.Mysql 更新数据 3.MySQL常用操作命令 4.MySQL的数据类型和建库策略详解 5.MySQL多表操作和备份处理 6.MySQL索引分类和各自用途...12.深入了解MySQL 5.5分区功能增强.doc 13.在MySQL中操作日期和时间

    Mysql数据库引擎大揭秘

    MySQL数据库引擎的历史和发展可以追溯到20世纪90年代初,由Michael Widenius和David Axmark创立,并于1995年首次发布。最初的版本只能在UNIX操作系统下运行,并且只支持基本的SQL功能。 随着互联网的发展,MySQL逐渐...

    MySQL数据库表分区注意事项大全【推荐】

    表分区与数据库分区是不一样的那么碰到表分区使用时我们要注意一些什么事情呢,今天我们来看一篇关于MySQL数据库表分区注意事项的细节。 1、分区列索引约束 若表有primary key或unique key,则分区表的分区列必须...

    MySql分区技术

    MySQL数据库分区技术,HASH分区:基于用户定义的表达式的返回值来进行选择 的分区,该表达式使用将要插入到表中数据行的列值进行 计算,这个函数可以包含MySQL中有效的,产生非负数 整数值的任何表达式.

    MySQL自动分区扩展

    最近需要把一个oralce数据库向mysql数据库移植。oracle库用到了job和存储过程,因为mysql中没有job,所有要用新功能event代替一下,这个是5.1以后才有的新功能,所以稍微研究了一下。

    MySQL数据库的优化与应用

    首先,文章介绍了索引优化、查询语句优化和分区表等技术手段,可以帮助提高MySQL数据库的性能和效率。其次,文章探讨了MySQL在Web应用程序、企业级应用和嵌入式系统等领域中的应用情况,为这些应用场景提供了强大的...

Global site tag (gtag.js) - Google Analytics