本文主要给大家简单讲讲MySQL性能优化及分区,分表的详细步骤,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望MySQL性能优化及分区,分表的详细步骤这篇文章可以给大家带来一些实际帮助。
一、分表
,1. 分表简介
<李>
引用>分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表。
李><李>
引用>如果正在使用的表需要进行分区,就需要同时修改程序的规则,使mysql可以得知用户查询的数据在哪。
李>,2. 分表类型
,分为垂直切分和水平切分
引用><李>
引用>垂直切分:将某些列分到另一个表
李><李>
引用>水平切分:将某些行分到另一个表
李>,3.分表的方式
,,1)Mysql集群
<李>
引用>它并不是分表,但起到了和分表相同的作用,集群可分担数据库的操作次数,将任务分担到多台数据库上。集群可以读写分离,减少读写压力。从而提升数据库性能。
李>
,,2)预先估计会出现大数据量并且访问频繁的表,将其分为若干个表
<李>
引用>根据一定的算法(如用哈希的方式,也可以用求余(取模)的方式)让用户访问不同的表
李>,,3)利用合并存储引擎来实现分表
<李>
引用>使用合并存储引擎分表,就不用再修改程序规则
李><李>
引用>合并分表,分为主表和子表,主表类似于一个壳子,逻辑上封装了子表,实际上数据都是存储在子表中的。
李>,4. 合并存储引擎分表
,,,
,,,
,,,创建子表
,,,
,,,创建主表
,,,
,开才能始分表
,,,通过身份证取模的方式过滤出分别要插入到子表的数据
,,,
,,,验证
,,,
,,,子表2只有奇数数据,而主表都会有
,,,每个子表都会有自己独立的表文件
,,,
二、分区
,1. 什么是分区
<李>
引用> 引用>分区和分表相似,都是按照规则分解表。不同在于分表将大表分解为若干个独立的实体表,而分区是将数据分段划分在多个位置存放,分区后,表还是一张表,但数据散列到多个位置了
李>,2. 分区形式
<李>
引用> 引用>水平分区(HorizontalPartitioning)这种形式分区是对表的行进行分区,所有在表中定义的列在每个数据集中都能找的到,所以表的特性依然得以保持。
李> <李>垂直分区(VerticalPartitioning)这种分区方式一般来说是通过对表的垂直划分来减少目标表的宽度,使某些特定的列被划分到特定的分区,每个分区都包含了其中的列所对应的行。
李>,3。查看mysql是否支持分区技术
,,,
,,,本例是
5.7,,,
,,,首先创建表并为其创建分区,并插入数据,以作测试
,,,
MySQL性能优化及分区,分表的详细步骤