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

零,什么是数据库分区

来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功能,在物理上将这一张表对应的三个文件,分割成许多个小块,这样呢,我们查找一条数据时,就不用全部查找了,只要知道这条数据在哪一块,然后在那一块找就行了。如果表的数据太大,可能一个磁盘放不下,这个时候,我们可以把数据分配到不同的磁盘里面去。

一,横向分区

什么是横向分区呢?就是横着来分区了,举例来说明一下,假如有100W条数据,分成十份,前10W条数据放到第一个分区,第二个10W条数据放到第二个分区,依此类推。也就是把表分成了十分,根用merge来分表,有点像哦。取出一条数据的时候,这条数据包含了表结构中的所有字段,也就是说横向分区,并没有改变表的结构。

ALTER TABLE `yl_hospital_url` PARTITION BY RANGE(ID) (

PARTITION `p0` VALUES LESS THAN (100000) ,

PARTITION `p1` VALUES LESS THAN (200000) ,

PARTITION `p2` VALUES LESS THAN (300000) ,

PARTITION `p3` VALUES LESS THAN (400000) ,

PARTITION `p4` VALUES LESS THAN (500000) ,

PARTITION `p5` VALUES LESS THAN (600000) ,

PARTITION `p6` VALUES LESS THAN (700000) ,

PARTITION `p6` VALUES LESS THAN (700000) ,

PARTITION `p7` VALUES LESS THAN (MAXVALUE)

) ;

分区前查询速度

1233413516-0.jpg

分区前查询速度

12334132B-1.jpg

二,mysql的分区

我觉着吧,mysql的分区只有一种方式,只不过运用不同的算法,規则将数据分配到不同的区块中而已。

1,mysql5.1及以上支持分区功能

安装安装的时候,我们就可以查看一下

[root@BlackGhost mysql-5.1.50]# ./configure --help |grep -A 3 Partition

=== Partition Support ===

Plugin Name: partition

Description: MySQL Partitioning Support

Supports build: static

Configurations: max, max-no-ndb

查看一下,如果发现有上面这个东西,说明他是支持分区的,默认是打开的。如果你已经安装过了mysql的话

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值