欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL 临时表

程序员文章站 2022-06-11 13:05:26
...

我们会在一些SQL查询中分析出现 Using temporary 的状态,这意味着查询过程中需要创建临时表来储存中间数据,我们需要通过合理的索引来避免它。另一方面,当临时表在所难免时,我们也要尽量减少临时表本身的开销,通过 mysqlreport 报告中的 Created Temp 部分,我们可以看到:


MySQL 临时表
            
    
    博客分类: 数据库  
MySQL 可以将临时表创建在磁盘(Disk table),内存(Table)以及临时文件(File)中,显然,在磁盘上创建临时表的开销最大,所以我们希望 MySQL 尽量不要在磁盘上创建临时表。

 

如果你在 show processlist 中看到某些查询的状态为 Copying to tmp table on disk,这也意味着 MySQL 将临时表从内存转移到磁盘中,以节省内存空间。

 

在 MySQL 的配置中,我们可以通过 tmp_table_size 选项来设置用于储存临时表的内存空间大小,一旦这个空间不够用,MySQL 将会启用磁盘来保存临时表,你可以根据 mysqlreport 的统计尽量给临时表设置较大的内存空间。

  • MySQL 临时表
            
    
    博客分类: 数据库  
  • 大小: 18 KB