小编pie*_*rot的帖子

临时表已满

The table '/mnt/disks/data/tmp/#sql58de_a0f6_7' is full

查询相当复杂/大。连接和并集中的大量连接、排序、分组……返回十分之一的结果。否则会导致上述错误。

运行查询时,CPU 和内存会增加,但不会达到最大值。有足够的磁盘空间(100Gb 可用)。

我摆弄过:

innodb_log_file_size
innodb_log_buffer_size
innodb_temp_data_file_path
innodb_data_file_path
innodb_data_home_dir

max_heap_table_size
tmp_table_size

table_open_cache
table_definition_cache
thread_cache_size
sort_buffer_size
Run Code Online (Sandbox Code Playgroud)

tmpdirslave_load_tmpdir设置为/mnt/disks/data/tmp具有足够的空间并且在运行查询时永远不会耗尽空间。innodb_tmpdir设置为NULL这意味着它回落到tmpdir?

由于我读到了有关此问题的内容,我更改了一些设置。其他的经过mysqltuner的建议。但我不能让查询始终成功。

所以:有些东西空间不足。但什么?那么在哪里呢?

  • 版本:Ver 8.0.23 for Linux on x86_64 (MySQL Community Server - GPL)
  • 存储引擎:InnoDB

mysql temporary-tables

3
推荐指数
1
解决办法
9320
查看次数

标签 统计

mysql ×1

temporary-tables ×1