mysql数据存储到指定位置_Mysql数据库表分区存储到指定磁盘路径

. 前提:

mysql5.6.6以上的版本以上的版本才支持单表指定目录,且目录权限是MySQL:mysql。  在mysql中数据文件存放于在my.cnf中datadir指定的路径,使用的表引擎不同产生的文件格式、表文件个数也会有所差异。  mysql的表引擎有多种,表的扩展名也不一样,如innodb用“ .ibd”,archive用“.arc ”,csv用“.csv”等。

0818b9ca8b590ca3270a3433284dd417.png

1.步骤详解

步骤一:设定my.cnf配置文件。

innodb_file_per_table=1

验证开关已经打开。

1

2

3

4

5

6

7

1

2

3

4

5

6

7mysql> SHOW VARIABLES LIKE 'innodb_file_per_table'; +-----------------------+-------+

| Variable_name | Value | +-----------------------+-------+

| innodb_file_per_table | ON | +-----------------------+-------+

1 row in set (0.00 sec)

步骤二:创建指定路径存储的分区表。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31CREATE TABLE orders_list2 ( id INT AUTO_INCREMENT, customer_surname VARCHAR(30), store_id INT, salesperson_id INT, order_date DATE, note VARCHAR(500), INDEX idx (id) ) ENGINE = INNODB PARTITION BY LIST(store_id) ( PARTITION p1 VALUES IN (1, 3, 4, 17) INDEX DIRECTORY = '/var/orders/district1' DATA DIRECTORY = '/var/orders/district1', PARTITION p2 VALUES IN (2, 12, 14) INDEX DIRECTORY = '/var/orders/district2' DATA DIRECTORY = '/var/orders/district2', PARTITION p3 VALUES IN (6, 8, 20) INDEX DIRECTORY = '/var/orders/district3' DATA DIRECTORY = '/var/orders/district3', PARTITION p4 VALUES IN (5, 7, 9, 11, 16) INDEX DIRECTORY = '/var/orders/district4' DATA DIRECTORY = '/var/orders/district4', PARTITION p5 VALUES IN (10, 13, 15, 18) INDEX DIRECTORY = '/var/orders/district5' DATA DIRECTORY = '/var/orders/district5' );

插入记录:

1

2

3

4

5

6

7

8

9

10

11

12

1

2

3

4

5

6

7

8

9

10

11

12insert into orders_list2(id, customer_surname, store_id, salesperson_id, order_date, note) values(1, "yang", 1, 1, CURDATE(), "testing");

insert into orders_list2(id, customer_surname, store_id, salesperson_id, order_date, note) values(2, "yang", 2, 2, CURDATE(), "testing");

insert into orders_list2(id, customer_surname, store_id, salesperson_id, order_date, note) values(6, "yang", 6, 6, CURDATE(), "testing");

insert into orders_list2(id, customer_surname, store_id, salesperson_id, order_date, note) values(8, "yang", 8, 8, CURDATE(), "testing");

insert into orders_list2(id, customer_surname, store_id, salesperson_id, order_date, note) values(5, "yang", 5, 5, CURDATE(), "testing");

insert into orders_list2(id, customer_surname, store_id, salesperson_id, order_date, note) values(10, "yang", 10, 10, CURDATE(), "testing");

步骤三:到指定新路径下验证。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20[root@f033b3fe25e2 orders]# tree

.

├── district1

│ └── test

│ └── orders_list2#P#p1.ibd

├── district2

│ └── test

│ └── orders_list2#P#p2.ibd

├── district3

│ └── test

│ └── orders_list2#P#p3.ibd

├── district4

│ └── test

│ └── orders_list2#P#p4.ibd

└── district5

└── test

└── orders_list2#P#p5.ibd

1

2

3

1

2

310 directories, 5 files

[root@f033b3fe25e2 orders]# pwd

/var/orders

查询验证:

1

2

3

4

5

6

7

1

2

3

4

5

6

7mysql> explain partitions select * from orders_list2; +----+-------------+--------------+----------------+------+---------------+------+---------+------+------+-------+

| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+----------------+------+---------------+------+---------+------+------+-------+

| 1 | SIMPLE | orders_list2 | p1,p2,p3,p4,p5 | ALL | NULL | NULL | NULL | NULL | 11 | NULL | +----+-------------+--------------+----------------+------+---------------+------+---------+------+------+-------+

1 row in set (0.00 sec)

步骤四:新增分区处理。

场景假设:比如最新的数据,我们想存储到SSD硬盘上。可以通过增加指定路径的分区文件达到目的。

1

2

3

4

5

6

7

1

2

3

4

5

6

7ALTER TABLE orders_list2 ADD PARTITION (PARTITION p6 VALUES IN (21,22,23) DATA DIRECTORY = '/var/ssd_testing' INDEX DIRECTORY = '/var/ssd_testing');

[root@f033b3fe25e2 var]# tree ssd_testing/

ssd_testing/

└── test

└── orders_list2#P#p6.ibd

六个分区结果:

1

2

3

4

5

6

7

1

2

3

4

5

6

7mysql> explain partitions select * from orders_list2; +----+-------------+--------------+-------------------+------+---------------+------+---------+------+------+-------+

| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------------+-------------------+------+---------------+------+---------+------+------+-------+

| 1 | SIMPLE | orders_list2 | p1,p2,p3,p4,p5,p6 | ALL | NULL | NULL | NULL | NULL | 12 | NULL | +----+-------------+--------------+-------------------+------+---------------+------+---------+------+------+-------+

1 row in set (0.00 sec)

2016年10月21日 20:56 思于家中床前

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

roslyn分析字符串代码_.NET 5 源代码生成器——MediatR——CQRS

在这篇文章中,我们将探索如何使用.NET 5中的新source generator特性,使用MediatR库和CQRS模式自动为系统生成API。中介者模式中介模式是在应用程序中解耦模块的一种方式。在基于web的应用程序中,它通常用于将前端与业务逻辑的解耦。在.NET平台…

mysql跟memcache的区别_MySQL-mysql Memory Storage Engine 和memcache到底有何不同?各自的优缺点是什么?...

Memory存储引擎将表的数据存放在内存中,默认使用哈希索引,memcache同样是使用哈希的方式将数据存在内存中,不过它们还是有比较大的区别的,我列几条:1.MEMORY表使用固定的记录长度格式,像VARCHAR这样的可变长…

vb用adodb链接mysql找不到_VB使用ADODB操作数据库的常用方法

ADO常用方法下面是我所掌握的使用ADO对数据库操作的一些常用方法,主要是提供给初学者作为参考,有不对的地方请指正。如有补充不胜荣幸准备工作DimconnAsNewADODB.Connection创建一个 Connection 实例,在这里使用New等于将Dim和Set合并为一段代…

mysql2008怎么重装_SQL Server2005、2008如何彻底删除卸载并重新安装?

很多小伙伴在删除SQL Server后重新安装总是遇到诸多问题导致安装失败,这是因为你没有将SQL Server彻底删除卸载完毕。本文就如何彻底卸载进行详细介绍,本文以SQL Server2008为例,2005的方法相似。方法/步骤1.按照传统方法将SQL Server 2005、…

micropython编译原理_C语言嵌入式Linux高级编程第9期:CPU和操作系统入门视频课程...

嵌入式开发是一门交叉学科。它要求我们的嵌入式工程师,不仅学习C语言、汇编、软件工程等软件层面的知识技能,还要求对CPU内部工作机制、计算机系统架构、操作系统原理、编译器等都有一个全局的认识和把握。而现实情况是,很多嵌入式的学员&…

mysql主从复制 火墙_MySQL高级知识(十五)——主从复制

前言:本章主要讲解MySQL主从复制的操作步骤。由于环境限制,主机使用Windows环境,从机使用用Linux环境。另外MySQL的版本最好一致,笔者采用的MySQL5.7.22版本,具体安装过程请查询相关资料。1.主从复制的基本原理slave会…

python在人工智能领域的应用论文_Python的应用领域主要在人工智能方面。-智慧树计算机专业导论章节答案...

计算机专业导论:Python的应用领域主要在人工智能方面。【?ж???】A:错B:对计算机专业导论章节测试答案:对更多相关问题2020年直流电弧特性虚拟仿真实验智慧树章节测试答案电力电子技术(山东联盟—中国石油大学(华东))_智慧树_答案中国大学_《说文解字》与上古社…

正则只能出现特定字符_python正则表达式的简单使用总结

原文作者:小哲,雷锋网在编程中,经常会涉及到字符串的操作,一个常用的策略就是利用split函数,然后对于特定的字符串进行匹配,但是这种方法格式复杂,可复用性较差。正则表达式是处理字符串匹配一个…

MySQL配置日志服务器_mysql配置数据库日志

mysql配置数据库日志云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷…

python外星人入侵不显示子弹_【Python】python外星人入侵,武装飞船,代码写好后,不显示子弹...

按照书上写的武装飞船,写到能够左右移动了,但到了射击(装子弹)时候,按照书上的代码照搬了,运行时没显示代码有问题,但就是按了空格键,不见有子弹,其他都正常。代码:alien_invasion.p…

python常见的异常类有哪些_Python常见异常类型

标签:常见 nic 警告 werror pytho 无效 本地变量 计算 pointBaseException     所有异常的基类SystemExit             解释器请求退出KeyboardInterrupt          用户中断执行(通常是输入^C)Exc…

mysql dos 下切换连接_如何在dos下连接进入mysql对数据库进行操作

一、:windowsR 进入命令命令提示符输入 net start mysql若出现系统错误,要将命令提示符以管理员身份运行若出现不是内部指令,进入下面环境变量设置界面,配置path路径1.进入系统查看界面,点击高级系统设置2&#xff0c…

mysql二级缓存redis_SpringBoot+Mybatis+redis(二级缓存)搭建

刚刚开始接触Spring Boot,因为极简单的配置开发,搭建一个通用的Spring BootMybaitisredis的开发框架。一、用maven构建项目,pom.xml文件如下:org.springframework.bootspring-boot-starter-parent1.5.1.RELEASEorg.springframewor…

mysql自定义两个条件排序_使用MySQL中的两个不同列进行自定义排序?

为此,将ORDER BY子句与CASE语句一起使用。让我们首先创建一个表-mysql> create table DemoTable1610-> (-> Marks int,-> Name varchar(20)-> ) ;使用插入命令在表中插入一些记录-mysql> insert into DemoTable1610 values(85,John);mysql> in…

java获取文件大小_Java中获取文件大小的详解及实例代码

Java 获取文件大小今天写代码时需要实现获取文件大小的功能,目前有两种实现方法,一种是使用File的length()方法;另外一种是使用FileInputStream的available()方法,当InputStream未进行read操作时,available()的大小应该…

java访问权限friendly_Java的访问权限

一.Java访问权限饰词(access specifiers)Java有public、protect、friendly、private四种访问权限,并且这四访问权限的访问范围越来越小。1. friendly1) 果一个class内的数据成员或方法没有任何权限饰词,那么它的缺省访问权限就是f…

java 0 255_java – 什么(float)(par4 16255)/ 255.0F;意思?

带alpha通道的RGB(通常称为RGBA或aRGB)是四个字节打包成一个整数.AAAAAAAARRRRRRRRBBBBBBBBGGGGGGGG // the original par4, each char represents one bit.// where ARBG stands for alpha, red, blue and green bit.shift和运算符用于检索每个字节.例如,par4>> 16&…

java ie下载文件名乱码问题_php中强制下载文件的代码(解决了IE下中文文件名乱码问题)...

中间遇到一个问题是提交的中文文件名直接放到header里在IE下会变成乱码,解决方法是将文件名先urlencode一下再放入header,如下。$file_name urlencode($_REQUEST[filename]);header("Pragma: public"); header("Expires: 0");heade…

java如何获得当前路径_在java中如何得到当前路径

归纳一些网上取java路径的方法:注明:如果从ANT启动程序,this.getClass().getResource("")取出来的比较怪,直接用JAVA命令行调试就可成功。得到classpath和当前类的绝对路径的一些方法获得CLASSPATH之外路径的方法&#…

java继承总结_JAVA笔记:Java中的继承总结

继承:在Java中使用extends关键字来实现类的继承 ,extends意思就是派生,所以子类也叫派生类,继承的主要目的是扩展类的内容操作格式: class A{}; class B extends A{};子类B可以继承父类A中的公用方法,也可…