`

http://blog.51yip.com/mysql/949.html

阅读更多
具体参考:http://blog.51yip.com/mysql/1029.html

一,什么是mysql分表,分区
什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法
什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上,具体请参考mysql分区功能详细介绍,以及实例
二,mysql分表和分区有什么区别呢
1,实现方式上
a),mysql的分表是真正的分表,一张表分成很多表后,每一个小表都是完正的一张表,都对应三个文件,一个.MYD数据文件,.MYI索引文件,.frm表结构文件。
[root@BlackGhost test]# ls |grep user 
alluser.MRG 
alluser.frm 
user1.MYD 
user1.MYI 
user1.frm 
user2.MYD 
user2.MYI 
user2.frm 
简单说明一下,上面的分表呢是利用了merge存储引擎(分表的一种),alluser是总表,下面有二个分表,user1,user2。他们二个都是独立的表,取数据的时候,我们可以通过总表来取。这里总表是没有.MYD,.MYI这二个文件的,也就是说,总表他不是一张表,没有数据,数据都放在分表里面。我们来看看.MRG到底是什么东西
[root@BlackGhost test]# cat alluser.MRG |more 
user1 
user2 
#INSERT_METHOD=LAST 
从上面我们可以看出,alluser.MRG里面就存了一些分表的关系,以及插入数据的方式。可以把总表理解成一个外壳,或者是联接池。
b),分区不一样,一张大表进行分区后,他还是一张表,不会变成二张表,但是他存放数据的区块变多了。
[root@BlackGhost test]# ls |grep aa 
aa#P#p1.MYD 
aa#P#p1.MYI 
aa#P#p3.MYD 
aa#P#p3.MYI 
aa.frm 
aa.par 
从上面我们可以看出,aa这张表,分为二个区,p1和p3,本来是三个区,被我删了一个区。我们都知道一张表对应三个文件.MYD,.MYI,.frm。分区呢根据一定的规则把数据文件和索引文件进行了分割,还多出了一个.par文件,打开.par文件后你可以看出他记录了,这张表的分区信息,根分表中的.MRG有点像。分区后,还是一张,而不是多张表。
2,数据处理上
a),分表后,数据都是存放在分表里,总表只是一个外壳,存取数据发生在一个一个的分表里面。看下面的例子:
select * from alluser where id='12'表面上看,是对表alluser进行操作的,其实不是的。是对alluser里面的分表进行了操作。
b),分区呢,不存在分表的概念,分区只不过把存放数据的文件分成了许多小块,分区后的表呢,还是一张表。数据处理还是由自己来完成。
3,提高性能上
a),分表后,单表的并发能力提高了,磁盘I/O性能也提高了。并发能力为什么提高了呢,因为查寻一次所花的时间变短了,如果出现高并发的话,总表可以根据不同的查询,将并发压力分到不同的小表里面。磁盘I/O性能怎么搞高了呢,本来一个非常大的.MYD文件现在也分摊到各个小表的.MYD中去了。
b),mysql提出了分区的概念,我觉得就想突破磁盘I/O瓶颈,想提高磁盘的读写能力,来增加mysql性能。
在这一点上,分区和分表的测重点不同,分表重点是存取数据时,如何提高mysql并发能力上;而分区呢,如何突破磁盘的读写能力,从而达到提高mysql性能的目的。
4),实现的难易度上
a),分表的方法有很多,用merge来分表,是最简单的一种方式。这种方式根分区难易度差不多,并且对程序代码来说可以做到透明的。如果是用其他分表方式就比分区麻烦了。
b),分区实现是比较简单的,建立分区表,根建平常的表没什么区别,并且对开代码端来说是透明的。
三,mysql分表和分区有什么联系呢
1,都能提高mysql的性高,在高并发状态下都有一个良好的表面。
2,分表和分区不矛盾,可以相互配合的,对于那些大访问量,并且表数据比较多的表,我们可以采取分表和分区结合的方式(如果merge这种分表方式,不能和分区配合的话,可以用其他的分表试),访问量不大,但是表数据很多的表,我们可以采取分区的方式等。
分享到:
评论

相关推荐

    大学四年里编写的c或c++的代码.rar

    https://github.com/miloyip/json-tutorial/blob/master/tutorial01/tutorial01.md 写一个WebServer 大佬写的:https://github.com/linyacool/WebServer 这里也给我写的打个小广告:...

    jsoncpp-master.zip

    这里https://github.com/miloyip/nativejson-benchmark有他的作者对 28 个 C/C++ JSON 库的比较,即便是老牌的JsonCpp库在效率上依然跟他差了一个量级。本Json数据库使用技巧详见文章内...

    rapidjson-master.zip

    这里https://github.com/miloyip/nativejson-benchmark有他的作者对 28 个 C/C++ JSON 库的比较,即便是老牌的JsonCpp库在效率上依然跟他差了一个量级。本Json数据库使用技巧详见文章内...

    fetion的安装

    参考文档:http://blog.51yip.com/server/1397.html 总之,安装飞信在CentOS 6.x上可能涉及多个步骤,包括下载和解压额外的库文件,安装必要的依赖,并更新动态链接库缓存。这个过程需要耐心和对Linux系统管理的...

    git配置库使用手册.docx

    - **获取Git仓库地址**:例如:`https://github.com/miloyip/rapidjson.git` - **创建本地文件夹**:在目标位置新建文件夹。 - **执行克隆命令**:右键点击文件夹中的空白处,选择“Git Clone”,输入仓库地址并点击...

    python通过ffmgep从视频中抽帧的方法

    ffmpeg中文文档:http://linux.51yip.com/search/ffmpeg ffmpeg -i test_baofeng.wmv -y -f image2 -ss 00:00:03 -vframes 1 myframe.jpg ffmpeg -i test.mp4 -y -f mjpeg -ss 3 -t 1 test1.jpg -f fmt 强迫采用格式...

    高级班VIP教程

    高级班VIP教程di0Day安全技能 0day大集合漏洞

    氯化氢传感器/HCL传感器/气体传感器.pdf

    - **香港地址**: Room 8, 6/F, Hong Leong Plaza, 33 Lok Yip Road, Fanling, N.T., Hong Kong - **电话**: (美国) +1 408.952.8200; (丹麦) +45.8652.5155; (香港) +852.2669.0828 - **传真**: (美国) +1 408.952....

    Gson 中解决 json 反序列化时相同属性对应不同类型的值的问题(代码)

    Gson 中解决 json 反序列化时相同属性对应不同类型的值的问题(代码),对应文章链接:https://blog.csdn.net/ZiFung_Yip/article/details/89143255

    nativejson-benchmark, C/C JSON解析器/生成器基准.zip

    nativejson-benchmark, C/C JSON解析器/生成器基准 原生JSON基准Copyright(c) 2014 -2016 ( miloyip@gmail.com ) 简介这个基准测试使用JSON解析/生成功能评估 41开源 C/C 库的一致性和性能。 性能意味着速度。内存和...

    php curl常用的5个经典例子

    curl_setopt($ch, CURLOPT_URL, "http://blog.51yip.com"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); curl_...

    Oracle mapviewer.pdf

    知识点:Oracle MapViewer详解 一、Oracle MapViewer概述: Oracle MapViewer是Oracle Fusion Middleware套件中的一个关键组件,主要用于地理信息系统(GIS)和空间数据的可视化处理。它为用户提供了一个强大的平台...

    bert-chinese-ner:使用预训练语言模型BERT做中文NER

    伯特·中国人 前言 使用预训练语言模型BERT做中文NER尝试,微调BERT模型 PS:移步最新模型 代码参考 使用方法 从下载bert源代码,存放在路径下bert文件夹中 从下载模型,放置在checkpoint文件夹下 ...

    Python库 | yip-0.4.tar.gz

    "yip-0.4.tar.gz" 是一个针对Python的库,其版本号为0.4,采用的是常见的压缩格式——tar.gz。这种格式结合了tar(用于打包多个文件)和gzip(用于压缩)的特性,以减少文件占用的磁盘空间。 首先,我们来了解一下...

    MAC厂商列表-20191030.csv

    00:1E:7C 0 Taiwick Ltd 5/F., Block E, Hing Yip Factory Bldg., Hong Kong China 852 HK HK MA-L 2007/10/22 2015/9/27 00:50:C2:C5:E 0 CellPlus Tech, Inc 3959 Idaho Street San Diego California 92104 US US ...

    rapidjson_bk, 一种用于 C /dom样式API的快速JSON解析器/生成器.zip

    rapidjson_bk, 一种用于 C /dom样式API的快速JSON解析器/生成器 是一个快速的JSON解析器/生成器,带有 sax/dom风格 API腾讯很高兴...版权所有( C ) 2015 THL A29有限公司,腾讯公司和 Milo Yip 。 保留所有权利。Rap

    RFID技术中的M16C/62P在中国液晶电视制造中的应用

    联系Email: denny.yip@renesas.com摘要 最近几年,中国的液晶电视工业有了巨大的增长。电子芯片产品制造商泰鼎多媒体技术(上海)有限公司(Trident Multimedia Technologies (Shanghai) Co., Ltd.)与瑞萨亚洲科技...

    rapidjson库使用总结

    根据RapidJSON作者MiloYip的测试结果,此库具有极高的性能表现。 #### 二、RapidJSON的主要特点 1. **轻量级且高效**:RapidJSON以其小巧高效著称,它不依赖于任何外部库,包括STL或BOOST等,这使得其集成更为简单...

    generator-yyip:yeoman发电机创建YIP年度财务改进建议

    YIP编辑 版权 TL; DR $ npm i generator-yyip -g $ yo yyip 演示版 抽象的 yEarn改进建议( YIP )描述了yEarn平台的标准,包括核心协议规范,客户端API和合同标准。 这是核心逻辑的cannonical定义规范。 动机...

Global site tag (gtag.js) - Google Analytics