MySQL 分区知识点(二 )

前言:

  MySQL 分区类型:

  1、RANGE 分区;

    // 这种类型的分区基于落在给定范围内的列值将行分配给分区。

  2、LIST 分区;

    // 与 RANGE 分区类似,除了根据匹配一组离散值之一的列来选择分区。

  3、LIST COLUMNS 分区;

    // 提供对 LIST COLUMNS 分区的支持。这是一种LIST分区的变体 ,可以使用多列作为分区键,

    也可以使用不同于整数类型的数据类型列作为分区列; 您可以使用字符串类型 DATE和 DATETIME列。

  3、HASH 分区;

    // 使用这种类型的分区,将根据用户定义的表达式返回的值来选择分区,该表达式对要插入到表中的行中的列值进行操作。

    该函数可以由在 MySQL 中有效的表达式产生非负整数值的任何表达式组成。此类型的扩展 LINEAR HASH 也可用。

  4、KEY 分区;

    // HASH 除了只提供一个或多个要评估的列,MySQL 服务器提供了自己的散列函数之外, 这种类型的分区类似于分区 。

    这些列可以包含除整数值之外的列,因为 MySQL 提供的散列函数保证整数结果,

    而不管列数据类型如何。此类型的扩展 LINEAR KEY 也可用。

一、RANGE 分区

  按范围分区的表以每个分区包含分区表达式值位于给定范围内的行分配。

  范围应该是连续的,但不重叠,并且使用 VALUES LESS THAN 运算符定义 。

  接下来的几个例子,假设您正在创建一个如下所示的表,以容纳 20 个视频存储区的人员记录,编号为1到20:

  

1 CREATE TABLE employees (
2     id INT NOT NULL,
3     fname VARCHAR(30),
4     lname VARCHAR(30),
5     hired DATE NOT NULL DEFAULT ‘1970-01-01‘,
6     separated DATE NOT NULL DEFAULT ‘9999-12-31‘,
7     job_code INT NOT NULL,
8     store_id INT NOT NULL
9 );

https://dev.mysql.com/doc/refman/8.0/en/partitioning-types.html

时间: 2024-07-29 00:51:24

MySQL 分区知识点(二 )的相关文章

MySQL 分区知识点(三)

前言: MySQL 分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张独立的表, 从 information_schema.INNODB_SYS_TABLES 系统表可以看到每个分区都存在独立的 TABLE_ID: 由于 Innodb 数据和索引都是保存在 ".ibd" 文件当中(从INNODB_SYS_INDEXES 系统表中也可以得到每个索引都是对应各自的分区( primary key 和 unique 也不例外)), 所以分区表的索引也是随着各个分区单独存储.

Mysql 分区介绍(二) —— RANGE分区

通过范围的方式进行分区, 为每个分区给出一定的范围, 范围必须是连续的并且不能重复, 使用VALUES LESS THAN操作符<br /> 让我们先来创建一个range分区的表 CREATE TABLE employees ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30), hired DATE NOT NULL DEFAULT '1970-01-01', separated DATE NOT NULL DEFAULT '9999

mysql分区及分表(二)

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

MySQL range分区(二)

MySQL range分区使用最多:具体介绍请看一 例子:该例子为本人个人学习总结分享->详细说明-->有问题欢迎前来交流 MySQL range分区(二)

mysql分区功能详细介绍,以及实例

一.什么是数据库分区 下面来说一下什么是数据库分区,以mysql为例.mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的.如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢,这个时候我们可以利用mysql的分区功能,在物理上将这一张表对应的三个文件,分割成许多个小块,这样呢,我们查找

Mysql 分区 分表相关总结之方案选择

[TOC] 引述 前段时间项目需要,一直在研究mysql sharding,看了一些这方面的资料,也亲自实验测试了一些数据.在此,做个概括的笔记,方便以后回顾知识,其实大多是借鉴网络上各位前辈的,然后抱着学习态度去实践,积累属于自己的东西. 拆分策略选择 其实拆分很灵活,有的是垂直切分,将一个库拆成两个或多个,将有相关联的表放在一个库里.有的是水平切分将数据量大的表按照一定逻辑进行拆分.个人感觉垂直切分的相对来说缓解了IO的瓶颈,而水平切分,目的是减轻了单个表或某些表读写的压力. 我们项目根据个

mysql 分区

一.为什么要分区? 需求:大数据.解决方案:分而治之,更细一点即为.将大表和大索引分为一个更小的操作单元在mysql中,分区允许将表.索引和索引编排表细分为更小的单元.分区后,每个分区有自己单独的名称.对于DBA来讲,这些分区可以统一管理,也可以分开管理.但是对于应用程序来讲,分区的表和没有分区的表示一样的.换句话来讲,分区对于应用是透明的,只是数据库对于数据的重新整理.Mysql分区,这个是mysql对于分区的官方解释. 1.分区的作用 a)提升性能 应该说,几乎所有分区的目的都是用来提升性能

mysql分区及实例演示

一.为什么要分区? 需求:大数据.解决方案:分而治之,更细一点即为.将大表和大索引分为一个更小的操作单元在mysql中,分区允许将表.索引和索引编排表细分为更小的单元.分区后,每个分区有自己单独的名称.对于DBA来讲,这些分区可以统一管理,也可以分开管理.但是对于应用程序来讲,分区的表和没有分区的表示一样的.换句话来讲,分区对于应用是透明的,只是数据库对于数据的重新整理.Mysql分区,这个是mysql对于分区的官方解释. 1.分区的作用 a)提升性能 应该说,几乎所有分区的目的都是用来提升性能

MySQL数据库知识点整理 (持续更新中)

一.修改用户密码 格式(在命令行下输入):mysqladmin -u 用户名 -p旧密码 password 新密码 1. 给root添加密码ab12:  mysqladmin -uroot -password ab12 2. 将root的密码修改为djg345:    mysqladmin -uroot -pab12 password djg345 二.添加新用户 格式:grant 权限 on 数据库名.表名 to 用户名@登录主机  identified by "密码" 1. 增加一