MySQL分区摘要
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,MySQL支持的分区类型为水平分区,并不支持垂直分区。水平分区,以行为单位,划分到不同的物理文件中;垂直分区即针对列划分。MySQL的分区,除了InnoDB支持,MyISAM也支持,所以分区并不是引擎
千家信息网最后更新 2024年11月20日MySQL分区摘要
MySQL支持的分区类型为水平分区,并不支持垂直分区。
水平分区,以行为单位,划分到不同的物理文件中;垂直分区即针对列划分。
MySQL的分区,除了InnoDB支持,MyISAM也支持,所以分区并不是引擎级别的事儿。
分区并不一定会让访问变得更快,尤其是OLTP应用,OLAP应用使用分区的效果往往更好。
MySQL支持的如下几种分区类型。
- RANGE 行数据基于一个给定连续区间的列值划分。
- LIST 和RANGE类似,只是LIST面向的不是连续区间值,而是离散的集合。
- HASH 根据自定义的表达式返回值进行分区,不支持负数返回。
- KEY 根据MySQL提供的hash函数进行分区
不论按照哪种类型进行分区,如果当前表有主键或者唯一索引,分区列必须是唯一索引的组成部分。反过来,如果当前表没有定义主键也没有唯一索引,分区列可以是任何列。
分区操作示例:
create table sales(id int, price decimal(9,2), season int, finyear datetime) partition by range(season) (prtition s1 values less than (4),partition s2 values less than (7),partition s3 values less than (10),partition s4 values less than (13));
使用函数获取range值
create table sales(id int, price decimal(9,2), season int, finyear datetime) partition by range(year(finyear)) ( partition s1 values less than (2016), partition s2 values less than (2017), partition s3 values less than (2018),partition s4 values less than (2020));
create table sales(id int, price decimal(9,2), season int, finyear datetime) partition by range(year(finyear)*100+ month(finyear)) ( partition s1 values less than (201804), partition s2 values less than (201807), partition s3 values less than (201810),partition s4 values less than (201813));
LIST分区示例
create table sales(id int, price decimal(9,2), season int, finyear datetime) partition by LIST(id) ( partition s1 values in (1,3,5,7,9), partition s2 values in (2,4,6,8,10));
HASH分区示例
create table sales(id int, price decimal(9,2), season int, finyear datetime) engine=innodbpartition by hash(year(finyear));
KEY分区示例
create table sales(id int, price decimal(9,2), season int, finyear datetime) engine=innodbpartition by key(finyear);
分区后的数据存储结构及使用效果
以RANGE分区为例
插入数据
insert into sales select 1,10.05,1,'2018-01-01';insert into sales select 2,10.05,3,'2018-03-01';insert into sales select 3,10.05,4,'2018-04-01';
执行查询
explain partitions select * from sales where finyear < '2016-01-01';
可以看到,查询优化器,直接跳过第四个分区,在前三个分区中查询,这就是要的效果。
除了分区,还有分表、分库、分片操作,每一个都很重要,也都有各自的适用场景。
支持
示例
效果
数据
类型
索引
查询
函数
区间
水平
应用
不同
重要
三个
事儿
分库
分表
单位
反过来
只是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器 安全增强设置
常用的无线网络安全技术有
四川网络安全培训服务机构
qq下载好没法更新数据库
海淀区网络技术
k4服务器的使用方法
服务器上云平台运行
方舟手游管理员服务器
海淀区品牌软件开发质量服务
软件开发难易程度
ios 的数据库是什么
河北凡泽互联网科技有限公司
卸载数据库2005
2018计算机网络安全考试
福建软件开发好的大专
沪教版 网络技术应用教案
服务器和光纤的连接方法
广东it软件开发价格
青阳微型软件开发服务厂家供应
iis在服务器中怎样打开
腾讯视频会员服务器劫持
云服务器可以搭建什么
现在的无线传感网络技术
合肥高新区软件开发培训价格
莱阳游戏软件开发推荐
企业信息系统的网络安全模型
科技不断发展的互联网时代
软件开发培训软文
我的世界创建服务器教程
河北数据库外泌体报价