位置: 编程技术 - 正文
推荐整理分享mysql分区功能详解,以及实例分析(mysql分区是什么意思),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql分区的功能,mysql分区的作用,mysql的分区,mysql分区是什么意思,mysql分区的功能,mysql 分区语句,mysql5.7分区表,mysql分区的功能,内容如对您有帮助,希望把文章链接给更多的朋友!
一,什么是数据库分区
前段时间写过一篇关于mysql分表的 的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面 (可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表 索引的。如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功能,在物理上将这 一张表对应的三个文件,分割成许多个小块,这样呢,我们查找一条数据时,就不用全部查找了,只要知道这条数据在哪一块,然后在那一块找就行了。如果表的数 据太大,可能一个磁盘放不下,这个时候,我们可以把数据分配到不同的磁盘里面去。
分区的二种方式
1,横向分区
什么是横向分区呢?就是横着来分区了,举例来说明一下,假如有W条数据,分成十份,前W条数据放到第一个分区,第二个W条数据放到第二个分区,依此类推。也就是把表分成了十分,根用merge来分表,有点像哦。取出一条数据的时候,这条数据包含了表结构中的所有字段,也就是说横向分区,并没有改变表的结构。
2,纵向分区
什么是纵向分区呢?就是竖来分区了,举例来说明,在设计用户表的时候,开始的时候没有考虑好,而把个人的所有信息都放到了一张表里面去,这样这个表里面就会有比较大的字段,如个人简介,而这些简介呢,也许不会有好多人去看,所以等到有人要看的时候,在去查找,分表的时候,可以把这样的大字段,分开来。
感觉数据库的分区好像是切苹果,到底是横着切呢,还是竖着切,根据个人喜好了,mysql提供的分区属于第一种,横向分区,并且细分成很多种方式。下面将举例说明一下。
二,mysql的分区
我觉着吧,mysql的分区只有一种方式,只不过运用不同的算法,?则将数据分配到不同的区块中而已。
1,mysql5.1及以上支持分区功能
安装安装的时候,我们就可以查看一下
查看一下,如果发现有上面这个东西,说明他是支持分区的,默认是打开的。如果你已经安装过了mysql的话
查看一下变量,如果支持的话,会有上面的提示的。
2,range分区
按照RANGE分区的表是通过如下一种方式进行分区的,每个分区包含那些分区表达式的值位于一个给定的连续区间内的行
3,list分区
LIST分区中每个分区的定义和选择是基于某列的值从属于一个值列表集中的一个值,而RANGE分 区是从属于一个连续区间值的集合。
上面的这个创建list分区时,如果有主?的话,分区时主键必须在其中,不然就会报错。如果我不用主键,分区就创建成功了,一般情况下,一个张表肯定会有一个主键,这算是一个分区的局限性吧。
如果对数据进行测试,请参考range分区的测试来操作
4,hash分区
HASH分区主要用来确保数据在预先确定数目的分区中平均分布,你所要做的只是基于将要被哈希的列值指定一个列值或表达式,以 及指定被分区的表将要被分割成的分区数量。
测试请参考range分区的操作
5,key分区
按照KEY进行分区类似于按照HASH分区,除了HASH分区使用的用 户定义的表达式,而KEY分区的 哈希函数是由MySQL 服务器提供。
测试请参考range分区的操作
6,子分区
子分区是分区表中每个分区的再次分割,子分区既可以使用HASH希分区,也可以使用KEY分区。这 也被称为复合分区(composite partitioning)。
1,如果一个分区中创建了子分区,其他分区也要有子分区
2,如果创建了了分区,每个分区中的子分区数必有相同
3,同一分区内的子分区,名字不相同,不同分区内的子分区名子可以相同(5.1.不适用)
官方网站说不同分区内的子分区可以有相同的名字,但是mysql5.1.却不行会提示以下错误
ERROR (HY): Duplicate partition name s1
三,分区管理
1,删除分区
2,新增分区
3,重新分区
四,分区优点
1,分区可以分在多个磁盘,存储更大一点
2,根据查找条件,也就是where后面的条件,查找只查找相应的分区不用全部查找了
3,进行大数据搜索时可以进行并行处理。
4,跨多个磁盘来分散数据查询,来获得更大的查询吞吐量
以上这篇mysql分区功能详解,以及实例分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。
MAC下Mysql5.7.版本修改root密码的方法 首先跳过权限表模式启动MySQL:mysqld--skip-grant-tables&从现在开始,你将踏入第一个坑,如果你使用网上到处贴的错误修改方法:mysqlUPDATEmysql.userSETauthenticati
详解MySQL的limit用法和分页查询语句的性能分析 limit用法在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。SELE
超简单的qps统计方法(推荐) 统计最近N秒内的QPS值(包括每秒select,insert等值)mysqlselectvariable_name,sum(per_sec)asqpsfrom(selectstraight_joinlower(gs0.variable_name)asvariable_name,(gs1.variable_value-gs0.variabl
标签: mysql分区是什么意思
本文链接地址:https://www.jiuchutong.com/biancheng/349907.html 转载请保留说明!友情链接: 武汉网站建设