视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mysql分区管理-range分区_MySQL
2020-11-09 18:16:04 责编:小采
文档
 bitsCN.com 为了更好的演示range分区,首先对mysql server的启动和关闭进行说明: 一,如何启动mysqld? 本人把mysql安装在windows环境下,安装的主目录homedir是"c:/Program Files
/MySQL/MySQL Server 5.1/",启动方法非常简单:首先进入cmd命令行窗口,如下图: 执行如下命令:cd c:/Program Files/MySQL/MySQL Server 5.1/,进入mysql安装目录,
可以看到bin目录,该目录是存放mysql的各种可执行文件,cd bin,进入该目录, 找到mysqld.exe的可执行文件,执行mysqld,即启动mysqld,如下图:
此时,打开任务管理器 - 》进程,可以看到mysqld.exe,表示启动成功。 二,如何关闭mysqld? 运行cmd,将路径切换到:c:/Program Files/MySQL/MySQL Server 5.1/bin下,用命令 mysqladmin -u root -p shutdown 如下图所示: 三,innodb_file_per_table设置 mysql innodb 存储引擎对表空间的管理在默认情况下是使用共享表空间,
即所有表的索引和数据均放在一个以ibdata1的文件中,我们可以执行下面的命令查看: 可以看到对应的Value: OFF,下面我们在配置文件my.ini增加下面一行: #tenfy: 新添加的参数 innodb_file_per_table=1 然后,重新启动mysqld,此时,可以看到: 那么,你也许会问,之前在innodb_file_per_table=0的时候已经创建的表,
此时还是继续使用共享表空间吗?是的,如果我们不对表进行修改,之前的可以继续使用,但 将共享表空间修改成表空间,除了修改innodb_file_per_table参数外,
我们需要修改所有innodb的表都运行如下: alter table table_name engine=innodb; (tenfy:注意红色部分必须添加,
否则无法生效),一旦执行完成后,我们可以在data的mytest1目录下,看到根据各个分区
生成的各个.ibd后缀的文件,这些文件就是表空间文件,每个分区对应一个。
(关于分区我们将在下面讲解)
四,mysql分区概述 分区功能并不是在存储引擎层完成的,因此除了innodb支持分区外,MyISAM,NDB
等均支持分区功能,而CSV,FEDERATED,MERGE则不支持分区功能。而MySQL在5.1版本时
添加了对分区功能的支持。 分区是将一个表或者索引物分解成多个更小的,更可管理的部分,而对用户访问db的应用来说,
从逻辑上看,只有一个表或者一个索引(这里跟分库分表的访问不一样),但在物理上这个表或者
索引可能是由许多个物理分区组成的,每个分区都是一个的对象,可以进行处理。 那么怎么判断当前数据库是否启用了分区功能呢?可以执行如下命令进行查看: 或者: 当前MySQL支持以下几种分区: 1,RANGE分区:顾名思义,区间分区,行数据基于一个给定连续区间的列值放入分区。 2,LIST分区:列表分区,与RANGE分区类似,只是LIST分区面向的是离散可列举的值。 3,HASH分区:根据用户自定义的表达式的返回值来进行分区,返回值不能是负数。 4,KEY分区:根据MySQL数据库提供的哈希函数进行分区。 但是不论什么类型的分区,必须注意以下两个问题: 1,如果表中存在primary key 或者unique key时,分区的列必须是primary key或者
unique key的一个组成部分,也就是说,分区函数的列只能从pk或者uk这些key中取子集。 如下: 表par_tb1有唯一key,他们对应的列是col1,col2。而此时进行分区的列却是col3,
因此出现1503错误,此时我们把col3加入到unique key或者用col1或者col2进行分区均 没问题:
2,如果表中不存在任何的primary key或者unique key,则可以指定任何一个列作为分区列。 五,RANGE分区。 RANGE分区是最常用的一种分区类型,它的特点主要是按照某个列连续的值进行分区,
因此在分区中常常使用values less than (xxx),下面我们以具体的例子来说明。 首先我们创建一个表,名字叫:range_par_tbl,有一个int类型的id字段,当id小于10的
时候,插入第一个分区,当id小于20的时候插入第二分区。如下: 此时,我们查看对应的分区表空间文件(注意:因为我们之前设置了innodb_file_per_table=1),
此时启用分区后,表已经由建立分区时的各个分区ibd文件组成了,由于我们分了两个区,
因此可以看到对应的两个文件:
可以看到,分区对应的表空间文件命名规则为:表名

下载本文
显示全文
专题