mysql分区和分表比较_MySQL分区和分表的区别与联系

一、分区和分表简介

分表

就是将一张大表分成N个小表。

分区

将一张大表的数据分成N个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上。

二、分区和分表的区别

1. 实现方式

1.1 分表

MySQL的分表是真正的分表,将一张大表分成若干个小表之后,每个小表都是完整的一张表,都对应三个文件(以MyISAM存储引擎为例):

.MYD文件:数据文件;

.MYI文件:索引文件;

.FRM文件:表结构文件。

如下图所示:

mysql分区和分表比较_MySQL分区和分表的区别与联系_第1张图片

上述的分表使用MERGE存储引擎(MyISAM存储引擎的分表变种)。alluser是总表,它下面有三个分表,user1、user2和user3。这三个子表都是独立的表,读取数据的时候,我们可以通过总表来取数据。

由上图可知,三个子表的.MYD(数据)和.MYI(索引)文件并没有存储在数据库指定的数据目录(Data Directory)中,而是存储在各自指定的目录中,然后在数据目录中创建相应的软链接指向它们。实际上,MySQL支持将分表的相关文件分散存储在不同的磁盘和分区中,对于拥有多个磁盘的数据库服务器来说,无疑能够充分利用多个磁盘的I/O性能。

由上图还可知,总表是没有.MYD和.MYI文

你可能感兴趣的:(mysql分区和分表比较)