我可以强制 MySQL 使用磁盘内部表吗?
Can I force MySQL to use on-disk internal tables?
如果我事先知道查询创建的内部表无法放入可用内存,我可以强制 MySQL 使用磁盘上的内部表,以避免在内存中创建和那么 HEAP 到 DISK 的转换呢?暂时是一种方法
set tmp_table_size = 0
或者有更好的方法吗?
设置您的 tmp_table_size 是正确的方法。最小值为 1024,我不认为将其设置为 0 会起作用。
此设置是专门针对您的情况进行的:
SET big_tables = ON
(然后关闭它。)
在 SELECT
.
之前
注意事项:在 MariaDB 10.5 中已弃用,取而代之的是 SET tmp_memory_table_size = 0;
如果我事先知道查询创建的内部表无法放入可用内存,我可以强制 MySQL 使用磁盘上的内部表,以避免在内存中创建和那么 HEAP 到 DISK 的转换呢?暂时是一种方法
set tmp_table_size = 0
或者有更好的方法吗?
设置您的 tmp_table_size 是正确的方法。最小值为 1024,我不认为将其设置为 0 会起作用。
此设置是专门针对您的情况进行的:
SET big_tables = ON
(然后关闭它。)
在 SELECT
.
注意事项:在 MariaDB 10.5 中已弃用,取而代之的是 SET tmp_memory_table_size = 0;