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)
tmpdir并slave_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