首页 > 编程知识 正文

备份数据到临时表,临时表的作用

时间:2023-05-05 21:29:21 阅读:171042 作者:3173

什么是临时表:Mysql是存储中间结果集的表,临时表仅在当前连接上可见。 关闭连接时,MySQL会自动删除表并释放所有空间。 生成临时表的原因:由于SQL复杂,通常会创建大量的临时表

暂定表分为内存临时表磁盘临时表两种。 内存临时表使用内存存储引擎,而磁盘临时表使用myisam存储引擎。 磁盘临时表也可以使用innodb存储引擎,它使用internal _ tmp _ disk _ storage _ engine参数控制使用哪个存储引擎。 缺省值为mysql5.7.6或更高版本。使用Created_tmp_disk_tables和Created_tmp_tables这两个参数生成的磁盘临时表的数量和所有生成的数字

临时表空间的大小由两个参数控制: tmp_table_size和max_heap_table_size。 通常,这两个参数中的较小数量控制内存临时表空间的最大值,但对于最初在内存中创建的临时表,随后会由于数据过大而传输到磁盘上的临时表中,从而导致max _ heap _ table 没有直接在磁盘上生成的临时表的大小控制。

以下操作用于临时表。

对视图的union查询操作。 例如,如果使用一些TEMPTABLE算法,union或aggregation子查询join,则可以使用由not in、exist等查询生成的派生表的复杂group by和order byInsert select 在mysql中,如果为临时表缓存select生成一行,并且多个表更新了GROUP_CONCAT ()或count distinct语句mysql,则内存表空间的使用也会被阻止,从而导致数据被删除

表包含BLOB或TEXT列

如果使用union或union all,则select子句包含的列数超过512个字节

对于Show columns或desc表,有LOB或TEXT

GROUP BY或DISTINCT子句包含的列长度大于512个字节

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。