MYSQL 临时表 您所在的位置:网站首页 mysql怎么查看user表 MYSQL 临时表

MYSQL 临时表

2023-05-14 06:41| 来源: 网络整理| 查看: 265

一.简介

临时表是临时的表,用户可以自己创建临时表用于【保存临时数据】,MYSQL内部也会在执行复杂sql时借助临时表进行分组排序去重等操作。临时表有两个特点:

1.临时表不能show tables查看,在服务器重启后,所有临时表全部被销毁。

2. 临时表是每个进程所独享的,不同客户端可以创建同名的临时表

二.分类

1.外部临时表

通过create temporary table 创建外部临时表

外部临时表很少用到,保存临时数据可以用Redis

2.内部临时表

用来存储某些操作的中间结果,对于用户不可见。我们可以在查询语句前添加explain使用执行计划查看。

3.group by的执行流程

以select * from user group by age 为例

        1.创建一个内部表,一列为age,一列为count(*)

        2.全表扫描,每扫描一个数据就进行一次判断:该数据的age在临时表中存在,count+1,否则加入age并使该age的count+1

        3.对临时表的数据按age进行排序

其实临时表还可以分为【内存临时表】和【磁盘临时表】。内存临时表使用memery引擎(Memory引擎不支持BOLB和TEXT类型),磁盘临时表默认使用innodb引擎。在以下几种情况下,会创建磁盘临时表:

1、数据表中包含BLOB/TEXT列;

2、在 GROUP BY 或者 DSTINCT 的列中有超过 512字符的字符类型列;

3、在SELECT、UNION、UNION ALL查询中,存在最大长度超过512的列(对于字符串类型是512个字符,对于二进制类型则是512字节)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有