mysql中如何实现范围分区

分类:编程技术 时间:2024-02-20 15:28 浏览:0 评论:0
0
本文向您展示如何在 MySQL 中实现范围分区。内容简洁易懂。绝对会让你眼前一亮。希望您能从本文的详细介绍中有所收获。


1.如何启动mysqld?

我在环境中安装了mysql。安装的主目录是“c:\Program Files
\MySQL\MySQL Server 5.1\”。启动方法很简单:首先进入cmd命令行窗口,如下图:
,这个目录存放着mysql的各种可执行文件,cd bin,进入这个目录,

找到mysqld.exe的可执行文件,执行mysqld,即启动mysqld,如下图:
www.2cto.com

此时,打开任务管理器-》进程,即可看到mysqld.exe,说明启动成功。



二、如何关闭mysqld?

运行CMD,切换路径到:C:\Program Files\MySQL\MySQL Server 5.1\bin下,使用command
mysqladmin -u root -p shutdown

如下图:



三、innodb_file_per_table设置

Mysql innodb存储引擎默认使用共享表空间来管理表空间,
即所有表的索引和数据都放在一个名为ibdata1的文件中。我们可以执行如下命令来查看:


可以看到对应的Value:OFF,我们在配置文件my.ini中添加如下一行:

# tenfy: 新增参数
innodb_file_per_table=1
www.2cto.com
然后,重启mysqld。这时,你可以看到:


那么,你可能会问,innodb_file_per_table=0之前已经创建的表此时是否应该继续使用共享表空间呢?是的,如果我们不修改表的话,之前的可以继续使用,但是要将共享表空间修改为独立表空间,除了修改innodb_file_per_table参数外,
我们需要修改所有 innodb 表,运行如下:

alter table table_name engine=innodb; (tenfy:注意红色部分一定要加上,否则不生效)。执行完成后,我们可以使用 mytest1 在 data 目录中,可以看到根据各个分区生成的带有 .ibd 后缀的文件。这些文件是独立的表空间文件,每个分区一个。
(关于分区我们下面会讲解)


四、mysql分区概述

分区功能并不是在存储引擎层完成的。因此,除了innodb之外,MyISAM、NDB
等都支持分区功能,而CSV、FEDERATED、MERGE则不支持分区。功能。 MySQL 在 5.1 版本中添加了对分区的支持。

分区是将表或索引分解为多个更小、更易于管理的部分。对于用户访问db的应用,
逻辑上,只有一个表或者index(这个和分库分表的访问不同),但是物理上这个表或者索引可能是由很多个物理分区组成的,每个分区都是一个独立的对象。可独立加工。
www.2cto.com
那么如何判断当前是否启用了分区功能呢?可以执行以下命令查看:


或者:


目前MySQL支持以下分区:
< br /> 1.RANGE分区:顾名思义,范围分区,行数据根据给定连续范围内的列值放入分区中。

2. LIST分区:列表分区,与RANGE分区类似,只不过LIST分区是针对离散的可枚举值。

3、HASH分区:根据用户自定义表达式的返回值进行分区。返回值不能为负数。

4. KEY分区:根据提供的哈希函数进行分区由 MySQL 数据库生成。

但无论什么类型的分区,都必须注意以下两个问题:

1、如果表中存在主键或唯一键时,则分区列必须是主键或唯一键的组成部分。也就是说,分区函数的列只能是键pk或uk的子集。 www.2cto.com

如下:


表par_tb1有一个唯一的键,其对应的列是col1和col2。此时用于分区的列是col3,
因此出现1503错误。这时我们在唯一键中添加col3或者使用col1或col2进行分区

没问题:

                                                    2.如果表中没有主键或唯一键表中,可以指定任意列作为分区列。

5.范围分区。

RANGE 分区是最常用的分区类型。其主要特点ture就是按照某一列的连续值进行分区。因此,分区时经常使用小于(xxx)的值。 ,下面我们用具体的例子来说明。

首先我们创建一个表,名为:range_par_tbl,其id字段类型为int。当id小于10
时,插入第一个分区。当id小于20时插入第二个分区。如下:
                                                                                                                                                                                                                                                                                           .每个分区都由ibd文件组成。由于我们分为两个区域,所以可以看到对应的两个文件:www.2cto.com

上面的内容就是如何实现范围分区在mysql中。你学到了知识或技能了吗?如果你想赚取更多技能或丰富您的知识库,请关注行业资讯频道。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > mysql中如何实现范围分区

用户评论