创建mysql表分区的方法.docx
《创建mysql表分区的方法.docx》由会员分享,可在线阅读,更多相关《创建mysql表分区的方法.docx(15页珍藏版)》请在第一文库网上搜索。
1、创建mysq1表分区的方法我来给大家介绍一下mysq1表分区创建与使用吧,希望对各位同学会有所帮助。表分区的测试使用,主要内容来自于其他博客文章以及mysq15.1的参考手册。表分区是最近才知道的哦,以前自己做都是分表来实现上亿级别的数据了,下面我来给大家介绍一下mysq1表分区创建与使用吧,希望对各位同学会有所帮助。表分区的测试使用,主要内容来自于其他博客文章以及mysq15.1的参考手册mysq1测试版本:mysq15.5.28mysq1物理存储文件(有mysq1配置的datadir决定存储路径)格式简介数据库engine为MYISAMfrm表结构文件,myd表数据文件,myi表索引文件。
2、INNODBengine对应的表物理存储文件innodb的数据库的物理文件结构为:.frm文件Jbd文件和.ibdata文件:这两种文件都是存放innodb数据的文件,之所以用两种文件来存放innodb的数据,是因为innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是用独享表空间存放存储数据。独享表空间存储方式使用,ibd文件,并且每个表一个ibd文件共享表空间存储方式使用Jbdata文件,所有表共同使用一个ibdata文件创建分区分区的一些优点包括:,与单个磁盘或文件系统分区相比,可以存储更多的数据。,对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的
3、分区,很容易地删除那些数据。相反地,在某些情况下,添加新数据的过程又可以通过为那些新数据专门增加一个新的分区,来很方便地实现。通常和分区有关的其他优点包括下面列出的这些。MySQ1分区中的这些功能目前还没有实现,但是在我们的优先级列表中,具有高的优先级;我们希望在5.1的生产版本中,能包括这些功能。一些查询可以得到极大的优化,这主要是借助于满足一个给定WHERE语句的数据可以只保存在一个或多个分区内,这样在查找时就不用查找其他剩余的分区。因为分区可以在创建了分区表后进行修改,所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据,来提高那些常用查询的效率。涉及到例如SUM()和COUNT(
4、)这样聚合函数的查询,可以很容易地进行并行处理。这种查询的一个简单例子如SE1ECTSaIespersonJdzCOUNT(Orders)asorder_tota1FROMsa1esGROUPBYSaIespersonJd;通过并行,这意味着该查询可以在每个分区上同时进行,最终结果只需通过总计所有分区得到的结果。,通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。简而言之就是数据管理优化,查询更快,数据查询并行检测mysq1是否支持分区复制代码代码如下:mysqIshowvariab1es1ike,%partition%;+IVariab1e_nameVa1ue+Ihave_partiti
5、oningYES+1rowinsetRANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。复制代码代码如下:DROPTAB1EIFEXISTS、p_range;CREATETAB1E、p_range(idint(10)NOTNU11AUTOJNCREMENT,namechar(20)NOTNU11,PRIMARYKEY(id)ENGINE=MyISAMAUTOJNCREMENT=9DEFAU1TCHARSET=utf8*!50100PARTITIONBYRANGE(id)(PARTITIONpVA1UES1ESSTHAN(8)ENGINE=MyISAM)*;range分区就是par
6、titionbyrange(id)表示按id1-7的数据存储在PO分区;如果id大于7了则数据不能写入了,因为没有对应的数据分区来存储;所以这时在创建分区时需要使用maxva1ues关键字了复制代码代码如下:PARTITIONBYRANGE(id)PARTITIONpVA1UES1ESSTHAN(8)zPARTITIONp1VA1UES1ESSTHANMAXVA1UE)这样就表示,所有id大于7的数据记录存在在P1分区里。RANGE分区在如下场合特别有用:,当需要删除旧的数据时。如果你使用上面最近的那个例子给出的分区方案,你只需简单地使用A1TERTAB1Eemp1oyeesDROPPARTI
7、TIONpO;”来册除所有在1991年前就已经停止工作的雇员相对应的所有行。对于有大量行的表,这比运行一个如DE1ETEFROMemp1oyeesWHEREYEAR(Separated)=1990;”这样的一个DE1ETE查询要有效得多。,想要使用一个包含有日期或时间值,或包含有从一些其他级数开始增长的值的列。,经常运行直接依赖于用于分割表的列的查询。例如,当执行一个如SE1ECTCOUNT(*)FROMemp1oyeesWHEREYEAR(Separated)=2000GROUPBYStOre_id;这样的查询时,MySQ1可以很迅速地确定只有分区p2需要扫描,这是因为余下的分区不可能包含有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 创建 mysql 分区 方法
