关于Mysql分区和分表

【分区概念】
分区就是把一张表的数据按照一定的规则分成多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上。分区后表还是一张表。
分区根据一定的规则把数据文件和索引文件进行了分割,还多出了一个.par文件,打开.par文件后你可以看出这张表的分区信息。

【分区好处】
突破磁盘的I/O瓶颈,从而达到提高mysql性能的目的。
便于表的维护管理,不需要修改程序代码。

【分区方法】
根据分区策略创建或修改表时对表数据进行分区(分区策略多样,实现容易)

【分表概念】
分表是真正的分表,一张表分成很多表后,每一个小表都是完正的一张表,都对应三个文件,一个.MYD数据文件,.MYI索引文件,.frm表结构文件。

【分表好处】
提升MYSQL的并发查询和磁盘读写能力

【分表方法】
1:利用MYSQL的merge存储引擎实现分表。(适合水平分表,分表存储引擎必须为myisam,不能与分区并用)
2:根据自定义的分表策略用代码实现分表。(分表策略灵活,分表存储引擎没有要求,可以和分区并用

参考http://blog.csdn.net/bt060218/article/details/7673264

时间: 2024-10-14 14:05:27

关于Mysql分区和分表的相关文章

mysql分区和分表

mysql分表和分区 1.mysql分表 什么是分表? 分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,每个表都对应三个文件,MYD数据文件,MYI索引文件,frm表结构文件.如果是Innodb存储引擎,索引文件和数据文件存放在同一个位置.这些表可以分布在同一块磁盘上,也可以在不同的机器上. app读写的时候根据事先定义好的规则得到对应的的表明,然后去操作它. 将单个数据库表进行拆分,拆分成多个数据表,然后用户访问的时候,根据一定的算法(如用hash的方式,也可以用取余的方式)

mysql分区及分表(一)

mysql分区分表 1.分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,每个表都对应三个文件,MYD数据文件,.MYI索引文件,.frm表结构文件 mysql分表分为垂直切分和水平切分 垂直切分是指数据表列的拆分,把一张列比较多的表拆分为多张表通常我们按以下原则进行垂直拆分:把不常用的字段单独放在一张表; 水平拆分是指数据表行的拆分,把一张的表的数据拆成多张表来存放. 水平拆分原则:通常情况下,我们使用hash.取模等方式来进行表的拆分 通过用ID取模的方法把数据分散到四张表内

Mysql分区和分表介绍

为什么要分区和分表 我们的数据库数据越来越大,随之而来的是单个表中数据太多,以至于查询速度过慢,而且由于表的锁机制导致应用操作也受到严重影响,出现数据库性能瓶颈. MySQL中有一种机制是表锁定和行锁定,是为了保证数据的完整性.表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行.行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数据进行操纵.但出现这种情况时,我们可以考虑分表或者分区. 分表 什么是分表 分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,每个

mysql分区及分表(二)

mysql分区分表(二) 测试未分区表和分区表性能 重新创建新的测试数据库及未分区表back1 创建分区表back2,按照年月区分 maxvalue把对于2005的值全放在p11区里 创建大点的数据(方便测试的时候区分明显分区和未分区的区别) rand()函数在0和1之间产生一个随机数,如果一个整数参数N指定,它被用作种子值..每个种子产生的随机数序列是不同的 执行存储过程load_part_tab向back2中插入数据 向back1中插入数据 测试未分区和分区的性能 可以通过explain语句

Mysql5.7—mysql优化分区、分表(必备)

小生博客:http://xsboke.blog.51cto.com 小生 Q Q:1770058260 -------谢谢您的参考,如有疑问,欢迎交流 一. 分表 1. 分表简介 分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表. 如果正在使用的表需要进行分区,就需要同时修改app的规则,使mysql可以得知用户查询的数据在哪. 2. 分表类型 分为垂直切分和水平切分 垂直切分:将某些列分到另一个表 水平切分:将某些行分到另一个表 3. 分表的方式 1) Mysql集群 它并不是

大数据技术之_29_MySQL 高級面试重点串讲_02_Mysql 简介+Linux 版的安装+逻辑架构介绍+性能优化+性能分析+查询截取分析+分区分库分表简介+锁机制+主从复制

第1章 Mysql 简介1.1 概述1.2 高级 MySQL第2章 Mysql Linux 版的安装2.1 下载地址2.2 检查当前系统是否安装过 mysql2.3 修改 Mysql 配置文件位置2.4 修改字符集和数据存储路径2.5 MySQL 的安装位置说明2.6 Mysql 配置文件说明2.7 Mysql 的数据存放目录第3章 Mysql 逻辑架构介绍3.1 总体概览3.2 查询说明第4章 Mysql 性能优化4.1 影响 mysql 的性能因素4.2 查询与索引优化分析4.2.1 性能下

Mysql 数据库优化(三)——分区和分表【个人经验】

引:MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件. 1.首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件, 2.另外还有.MYD和.MYI文件,分别存放了表的数据(.MYD)和索引数据(.MYI). 每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存储,也就是说不管这个表有多少个索引,都是存放在同一个.MYI文件中. MyISAM支持以下三种类型的索引: 1.B-Tree索引 B-Tree索引,顾名思义,就是所有的索引节点都按照ba

(转)MYSQL 的分区 、分表、集群

转发:https://www.cnblogs.com/myvic/p/7711498.html MYSQL 的分区 .分表.集群 1.分区 mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的, 一个是myi存表索引的.如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功

Mysql第八天 分区与分表

分区表 主要提供例如以下的特性,或者适合如此场景: 数据量非常大, 或者仅仅有表中最后的部分有热点数据.其它均为历史数据 分区表数据更easy维护,能够对独立的分区删除等操作 分区表的数据能够分布在不同的物理设备上.从而高效地利用多个硬件设备. 能够避免一些特殊瓶颈.比方InnoDB的单个索引的相互排斥訪问 能够备份和恢复独立的分区 创建分区表 通常有这么几种分法.由于主键或者是唯一约束键必须有一部分包括在分区键中,所以一般要不无主键,要不就依照自增主键的id进行范围分区,要不就把分区字段和主键