MySQL 临时表
程序员文章站
2022-06-11 13:13:09
...
我们会在一些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中的哈希表_PHP
-
对mysql存储性能优化的基本理解_MySQL
-
PHP MSSQL 分页实例 mssql2005 mysql mssql下载
-
Mysql建表与索引使用规范详解_MySQL
-
MySQL 连接池的实际配置问题
-
Pythian Acquires Blackbird.io_MySQL
-
[C#小程序]命令行小程序之小九九乘法表的实现代码
-
MySQL 的 utf8_general_ci 和 utf8_unicode_ci 有什么区别,应如
-
Access入门教程7.2怎样为表设置主键
-
mysql 创建函数报错:This function has none of DETERMINISTIC,