一、什么是mysql分表和分区

什么是分表,从表面意思上看呢,就是把一张表分成N多个小表

什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上

二、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这种分表方式,不能和分区配合的话,可以用其他的分表试),访问量不大,但是表数据很多的表,我们可以采取分区的方式等。

mysql表分区和表空间_mysql分表和分区的区别浅析相关推荐

  1. mysql 分表和分区_Mysql分表和分区的区别

    一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘 ...

  2. [MySQL]MySQL分区与传统的分库分表(精华)

    传统的分库分表 传统的分库分表都是通过应用层逻辑实现的,对于数据库层面来说,都是普通的表和库. 分库 分库的原因 首先,在单台数据库服务器性能足够的情况下,分库对于数据库性能是没有影响的.在数据库存储 ...

  3. 分区和分片的区别_Mysql分表和分区的区别、分库分表介绍与区别

    分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看: [root@BlackGhost test]# ls |grep user a ...

  4. 分区和分片的区别_MySql分表、分库、分片和分区知识点介绍

    一.前言 数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈.需要进行数据的处理,采用的手段是分区.分片.分库.分表. 二.分片(类似分库) 分片是把数据库横向扩展(Scale Out)到多个 ...

  5. mysql如何根据业务分表设计_mysql分表分库的应用场景和设计方式

    很多朋友在论坛和留言区域问mysql在什么情况下才需要进行分库分表,以及采用何种设计方式才是最优的选择,根据这些问题,小编为大家整理了关于MySQL分库分表的应用场景和最优的设计方式举例. 一. 分表 ...

  6. mysql分表全局查询_mysql如何查询多样同样的表/sql分表查询、java项目日志表分表的开发思路/按月分表...

    之前开发的一个监控系统,数据库的日志表是单表,虽然现在数据还不大并且做了查询sql优化,不过以后数据库的日志表数据肯定会越来越庞大,将会导致查询缓慢,所以把日志表改成分表,日志表可以按时间做水平分表, ...

  7. mysql分表准则_Mysql分表准则_MySQL

    bitsCN.com Mysql分表准则 Mysql分表准则 在大量使用mysql时,数据量大.高访问时,为了提高性能需要分表处理,简介下mysql分表的标准,后续会继续补充 环境: 业务类型:OLT ...

  8. mysql分表的原则_mysql分表规则(转)

    author:skate time:2013/05/14 Mysql分表准则 在大量使用mysql时,数据量大.高访问时,为了提高性能需要分表处理,简介下mysql分表的标准,后续会继续补充 环境: ...

  9. mysql分页分表_mysql分表后 如何分页 (总共160个表1500万数据)

    mysql分表后,有160个表,有1500万数据,要怎么做分页列表? 之前是想用union all合并160个表的结果集..但直接卡的数据都出不来.. 请问这里应该怎么做分页,谢谢~~~ 回复讨论(解 ...

最新文章

  1. 【java】兴唐第十五节课
  2. 物联网平台 源码_国内首个智慧交通物联网平台发布
  3. php中命名空间和use
  4. android密码解锁/指纹解锁返回的authToken深度解剖
  5. 关于MSSQL存储过程中使用游标的一个小例子(学习)
  6. Python验证码简单实现(数字和大写字母组成的4位验证码)
  7. KXD黑夜模式流星滑落个人主页HTML源码
  8. 转角遇上Volcano,看HPC如何应用在气象行业
  9. SSH Secure Shell Client连接linux中文乱码的解决办法
  10. Java pta题库
  11. 三角形外接圆圆心坐标
  12. 如何查看局域网内所有IP
  13. 如何搭建一对一直播PHP直播系统源码的流程
  14. 岩土工程颗粒流软件PFC6.0实用技巧——将abaqus网格转换成PFC流体网格
  15. php在线安装ipa,网页安装ipa
  16. SpringBoot 发送邮件功能(包含网易、QQ、Gmail邮箱)
  17. 手机卫星定位系统_如何判断自己的手机是否支持北斗卫星定位功能,如何使用?...
  18. mdadm chuck_面向所有人的Python-Chuck博士提供的14小时免费Python课程
  19. 数字电路——流水灯(二)_往返流水灯
  20. 重装系统(纯净系统)win7/win10

热门文章

  1. 使用Entity Framework和WCF Ria Services开发SilverLight之4:Map之主外键映射
  2. Boost源码剖析之:容器赋值-assign
  3. [LUOGU] 1090 合并果子
  4. Puppet Host资源介绍(二十一)
  5. 医疗安全监控与检测平台WattsUpDoc
  6. 《Drupal实战》——1.9 小结
  7. 应用MaxCompute实现变压器局部放电相位分析
  8. gulp打包js/css时合并成一个文件时的顺序解决
  9. Codeforces Gym 100523E E - Gophers SET
  10. 【Android开发】范例2-实现简易绘图板