我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL DDL临时表存储操作步骤

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL DDL临时表存储操作步骤

本篇文章给大家主要讲的是关于MySQL DDL临时表存储操作步骤的内容,感兴趣的话就一起来看看这篇文章吧,相信看完MySQL DDL临时表存储操作步骤对大家多少有点参考价值吧。

1. 背景

  * 临时表是基于会话的(session),只在当前连接可见

   * 当这个连接(会话)关闭的时候,会自动drop。

   * 两个不同的连接(会话)里使用相同的临时表名,并且相互不会冲突,或者使用已经存在的表,但不是临时表的表名。

   * 当这个临时表表名已存在表的时候,存在的表被隐藏了,如果临时表被drop,存在的表就可见了

  * 创建临时表用户必须有 create temporary table 权限。 

   * Mysql 5.7之后临时表数据存储于 ibtmp1 文件中.


2. MySQL 5.7临时表相关文件存储

   * 查看 MySQL 版本

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.18    |
+-----------+
1 row in set (0.01 sec)


   * 创建临时表 temp_1

mysql> CREATE TEMPORARY TABLE temp_1(
    -> id BIGINT PRIMARY KEY NOT NULL  AUTO_INCREMENT,
    -> data json
    -> )ENGINE=INNODB CHARSET=utf8mb4;
Query OK, 0 rows affected (0.00 sec)


   * 对临时表 temp_1 插入数据

mysql> INSERT INTO temp_1 SELECT NULL, JSON_OBJECT('name', 'tom', 'sex', 'male', 'age', '25');
Query OK, 1 row affected (0.02 sec)
Records: 1  Duplicates: 0  Warnings: 0


   * 查看临时表 temp_1 数据

mysql> SELECT * FROM temp_1;
+----+---------------------------------------------+
| id | data                                        |
+----+---------------------------------------------+
|  1 | {"age": "25", "sex": "male", "name": "tom"} |
+----+---------------------------------------------+
1 row in set (0.00 sec)

   * 查看 temp 变量 [ 临时文件存储目录 ]

mysql> show variables like 'tmpdir';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir        | /tmp  |
+---------------+-------+
1 row in set (0.02 sec)


   * 查看临时表结构定义文件 *.frm

   '#'开头的代表临时表结构定义文件

mysql> system ls -l /tmp
total 18
srwxrwxrwx 1 mysql mysql    0 Jun 27 20:09 mysql.sock
-rw------- 1 mysql mysql    5 Jun 27 20:09 mysql.sock.lock
-rw-r----- 1 mysql mysql 8586 Jun 27 22:41 #sql666_9_0.frm


   * 查看 datadir 变量 [ 数据存储目录 ]

mysql> show variables like 'datadir';
+---------------+-------------------+
| Variable_name | Value             |
+---------------+-------------------+
| datadir       | /data/mysql_data/ |
+---------------+-------------------+
1 row in set (0.01 sec)


  * 查看临时表表数据存储文件 ibtmp1 [ 5.7之后将临时表数据存储于ibtmp1文件中 ]

mysql> system ls -l /data/mysql_data/ibtmp1
-rw-r----- 1 mysql mysql 12582912 Jun 27 22:43 /data/mysql_data/ibtmp1


3. MySQL 5.6临时表相关文件存储

  * 查看 MySQL 版本

mysql> show variables like 'version';
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| version       | 5.6.36 |
+---------------+--------+
1 row in set (0.00 sec)


   * 创建临时表 temp_1

mysql> CREATE TEMPORARY TABLE temp_1( 
    -> id BIGINT PRIMARY KEY NOT NULL AUTO_INCREMENT,
    -> name VARCHAR(32) NOT NULL,
    -> sex ENUM('male', 'female'),
    -> age INT NOT NULL
    -> )ENGINE=INNODB CHARSET=utf8mb4;
Query OK, 0 rows affected (0.06 sec)


   * 对临时表 temp_1 插入数据

mysql> INSERT INTO temp_1 SELECT NULL, 'tom', 'male', 22;
Query OK, 1 row affected (0.03 sec)
Records: 1  Duplicates: 0  Warnings: 0


   * 查看临时表 temp_1 数据

mysql> INSERT INTO temp_1 SELECT NULL, 'tom', 'male', 22;
Query OK, 1 row affected (0.03 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM temp_1;
+----+------+------+-----+
| id | name | sex  | age |
+----+------+------+-----+
|  1 | tom  | male |  22 |
+----+------+------+-----+
1 row in set (0.00 sec)


   * 查看 temp 变量 [ 临时文件存储目录 ]

mysql> show variables like 'tmpdir';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir        | /tmp  |
+---------------+-------+
1 row in set (0.00 sec)


   * 查看临时表结构定义文件 *.frm和数据文件 *.ibd 

        [ MySQL 5.7之前临时表所有表结构定义文件和数据文件存储在 tmpdir中  ]

mysql> system ls -l /tmp
total 116
srwxrwxrwx 1 mysql mysql     0 Jun 27 22:53 mysql.sock
-rw-rw---- 1 mysql mysql  8656 Jun 27 22:57 #sqla34_4_0.frm
-rw-rw---- 1 mysql mysql 98304 Jun 27 22:58 #sqla34_4_0.ibd

以上关于MySQL DDL临时表存储操作步骤详细内容,对大家有帮助吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL DDL临时表存储操作步骤

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

大数据的存储与分析的具体操作步骤

大数据存储和分析技术涵盖分布式文件系统、数据库和对象存储等存储方案,以及批处理分析、流处理、交互式分析、机器学习和数据可视化等分析方案。存储和分析操作的步骤包括数据采集、预处理、存储、分析、可视化、洞察生成和决策制定。
大数据的存储与分析的具体操作步骤
2024-04-09

大数据的存储与分析的具体操作步骤

大数据的存储与分析包括以下具体操作步骤:1. 数据采集:从多个来源(如传感器、日志文件、社交媒体等)收集大量的数据。2. 数据清洗:对采集到的数据进行清洗和预处理,包括去除重复数据、处理缺失值、处理异常值等。3. 数据存储:选择适当的存储方
2023-10-11

怎么用Mysql定时+存储过程创建临时表统计数据

这篇“怎么用Mysql定时+存储过程创建临时表统计数据”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Mysql定时+存
2023-07-05

Mysql 存储过程中使用游标循环读取临时表

游标游标(Cursor)是用于查看或者处理结果集中的数据的一种方法。游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。 游标的使用方式定义游标:Declare 游标名称 CURSOR for table;(table也可以是se
2022-06-01

MySQL之存储过程按月创建表的方法步骤

具体不多说,直接上代码。欢迎一起交流和学习。创建一个按月创建表的存储过程,SQL语句如下:DELIMITER // DROP PROCEDURE IF EXISTS create_table_by_month // CREATE PROC
2022-05-11

利用Mysql定时+存储过程创建临时表统计数据的过程

1.mysql定时任务简单介绍mysql的定时任务是使用event(事件)来实现的,自mysql5.1.6版本起,增加了这个功能 - 事件调度器(event scheduler),它可以精确到每秒钟执行一个任务,在一些对数据实时性要求比较
2023-03-19

MySQL数据库高级操作实战(克隆表、清空表、创建临时表及约束)

目录一、案例扩展二、克隆表1、方法一2、方法二三、清空表四、创建临时表五、创建外键约束,保证数据的完整性和一致性。六js、mysql中6种常见的约束总结一、案例扩展use kgc;create table if not exists i
2023-06-16

编程热搜

目录