小贝_mysql分区理论学习

mysql分区

简要:

一、为什么需要mysql分区

二、mysql分区的类型

三、mysql分区技术对比

一、为什么需要mysql分区

1、首先,业务数据增大时,必然会影响数据操作。通常针对大数据,有如下优化方法:

a、大表拆小表

b、sql语句优化

2、不足:

a、sql语句优化可以通过增加索引等来调整,但是随着数据量增大时将会导致索引的维护代价增大

b、大表拆分小表可以在细分为垂直or水平分表。但是需要实现逻辑操作。即选择那张表

3、总结: 针对大数据,添加索引会导致索引文件大以及维护索引代价大,拆分表,就需要实现逻辑操作。因此,这里需要用到mysql分区。分区其实从本质上也是实现了拆分小表的做法。是基于物理层面上进行拆分成小表,无须实现逻辑操作,对用户而言是透明的。

二、mysql分区类型

1、range分区: 基于给定连续区间的列值,把多行分配给分区

2、list分区: 类似于按range分区,区别在于list分区是基于列值匹配一个离散值集合中的某个值来进行选择

3、hash分区: 基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算,这个函数可以包含mysql中有效的、产生非负整数值得任何表达式

4、key分区: 类似于hash分区,区别在于key分区只支持计算一列或多列,且mysql服务器提供自身的哈希函数

总结: 使用优先级 range>list>hash>key

hash一般用于测试分区

三、mysql分区技术对比


分区名称


优点


缺点


共性


range


适合与日期类型,支持复合分区


有限的分区


一般只针对某一列


list


适合与有固定取值的列,支持复合分区


有限的分区,插入记录在这一列的值不在list中,则数据丢失


一般只针对某一列


hash


线性hash使得增加、删除和合并分区更快捷


线性hash的数据分布不均匀,而一般hash的数据分布均匀


一般只针对某一列


key


列可以为字符串等其它非int类型


效率较之前的低,因为函数为复杂的函数如md5或sha函数


一般只针对某一列

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-24 13:55:58

小贝_mysql分区理论学习的相关文章

小贝_mysql分区实例

mysql分区实验 简要: 一.按照分区类型建立分区 二.管理分区 三.分区与未分区表例子 一.建立分区以hash分区为例 (1).非线性hash分区 1.测试表t_hash结构 create table t_hash (id int unsigned, name char(1) )engine=myisam charset=utf8 partition by hash(id) partitions 5; 2.t_hash表物理文件结构 3.往t_hash表插入数据 4.查看表t_hash物理结

小贝_mysql优化学习

mysql优化 简要: 1.数据库设计优化 2.sql语句优化 3.表分割 4.读写分离技术 一.数据库设计优化 1.表设计要符合三范式,当然,有时也需要适当的逆范式 2.什么是三范式 一范式: 具有原子性,不可再分割 二范式: 在满足一范式的基础上,我们考虑是否满足二范式.只要表的记录满足唯一性,也是说,同一张表,不可能出现完全相同的记录,一般说,在表中设计一个主键即可. 三范式: 在满足二范式的基础上,我们考虑是否满足三范式.只要表满足没冗余性. 二.SQL语句优化 1.sql优化的一般步骤

小贝_mysql建表以及列属性

mysql建表以及列属性 简要: 一.建表原则 二.详细的列属性说明 一.建表原则 建表: 其实就是声明列的过程,数据最终是以文件的形式放在硬盘(内存) 列: 不同的列类型占的空间不一样. 选列的原则: 够用,不浪费 二.列类型以及属性说明 列类型有: 整形.浮点型.字符型.日期/时间型 2.1.整形 tinyint/smallint/mediumint/int/bigint 2.1.1.详解tinyint 一个字节 [][][][][][][][]共8位 假设8为都为0 ==> 转化为十进制

小贝_mysql表优化

mysql表优化 简要:        一.分析表 二.检查表 三.优化表 四.表数据导入 五.锁表操作 一.分析表 1.1.命令: ANALYZE [NO_WRITE_TO_BINLOG | LOCAL]TABLE tbl_name [, tbl_name] ... 1.2.作用: 本语句用于分析和存储表的keyword分布.分析的结果将可以使得系统得到准确的统计信息,使得sql可以生成正确的行计划 1.3.不足: 在分析期间,会对表进行读锁操作 1.4.样例: 二.检查表 2.1.命令 CH

小贝_mysql select连接查询

select连接查询 简要: 一.union联合查询 二.左右内连接 一.union联合查询 作用: 把2次或多次查询结果合并起来 具体: (表1查询结果) union (表2查询结果) 运行: 先算表1查询结果,再算表2查询结果.再通过union把结果联合起来. 总结: a.左右查询结果列数一致 b.终于显示结果以第一张表的列名为主 c.左右查询结果的列类型最好也一致.不然就会进行转换. 由低到高.如表1结果A列为整形,表2结果A列为浮点型.则表1在A列的结果转换为浮点型 d.能够是不同表 e

小贝_mysql数据库备份与恢复

mysql数据库备份与恢复 简要:        一.数据库备份 二.数据库恢复 一.数据库备份 1.备份简单说明 : 系统运行中,增量备份与整体备份 例: 每周日整体备份一次,周一到周六备份当天 如果周五出了问题,则可以用周日的整体+周一,二,三,四来恢复 2.备份工具 a.第三方收费备份工具 b.系统自带备份功能即mysqldump(可以导出库.表) c.利用outfile和infile 2.1.mysqldump使用例子 例1.导出某个库下的表 mysqldump–u用户名 –p密码库名

小贝_mysql主从复制作用以及案例

mysql主从复制 简要: 一.mysql用户授权 二.mysql bin-log日志 三.mysql主从复制 一.mysql用户授权 1.命令 2.作用:进行权限控制 3.例子: (备注: 允许用户xiaobei从localhost访问mysql,而且需要密码验证,密码为xiaobei) 4.查看mysql用户权限表 二.bin-log日志 1.查看bin-log是否开启 2.开启bin-log日志 修改配置文件 [mysqld] log-bin=mysql-bin 3.重启mysql服务器,

小贝_mysql sql语句优化过程

sql语句优化 一.SQL优化的一般步骤 (1).通过show status命令了解各种SQL的执行频率. (2).定位执行效率较低的SQL语句-(重点select) (3).通过explain分析低效率的SQL语句的执行情况 (4).确定问题并采取相应的优化措施 (1) 通过showstatus命令了解各种SQL的执行频率 MySQL客户端连接成功后,通过使用show[session|global] status 命令可以提供服务器状态信息.其中的session来表示当前的连接的统计结果,gl

小贝_mysql select5种子句介绍

mysql select5种子句介绍 简要 一.五种字句 二.具体解释五种字句 一.五种字句 where.group by.having.order by.limit 二.具体解释五种字句 2.1.理解where子句 理解select 列1.列2- fromtable where where子句 a. 把where子句看成表达式.到table中查询满足表达式成立的行 b. 上述查询语句的运行顺序.先找到表table后.再运行where子句.满足表达式后进行展示. c.比較运算符和逻辑运算符 2.