MySQL 临时表
程序员文章站
2022-06-11 13:05:26
...
我们会在一些SQL查询中分析出现 Using temporary 的状态,这意味着查询过程中需要创建临时表来储存中间数据,我们需要通过合理的索引来避免它。另一方面,当临时表在所难免时,我们也要尽量减少临时表本身的开销,通过 mysqlreport 报告中的 Created Temp 部分,我们可以看到:
MySQL 可以将临时表创建在磁盘(Disk table),内存(Table)以及临时文件(File)中,显然,在磁盘上创建临时表的开销最大,所以我们希望 MySQL 尽量不要在磁盘上创建临时表。
如果你在 show processlist 中看到某些查询的状态为 Copying to tmp table on disk,这也意味着 MySQL 将临时表从内存转移到磁盘中,以节省内存空间。
在 MySQL 的配置中,我们可以通过 tmp_table_size 选项来设置用于储存临时表的内存空间大小,一旦这个空间不够用,MySQL 将会启用磁盘来保存临时表,你可以根据 mysqlreport 的统计尽量给临时表设置较大的内存空间。
上一篇: 活动推荐 | 听说 PHP 是最好的语言
下一篇: 基于上海宝付的php网站架设