本文共 798 字,大约阅读时间需要 2 分钟。
在创建InnoDB索引时用于指定对数据排序的排序缓冲区的大小。利用这块内存把数据读进来进行内部排序然后写入磁盘。这个参数只会在创建索引的过程中被使用,不会用在后面的维护操作;在索引创建完毕后innodb_sort_buffer会被释放。
这个值也控制了在执行online DDL期间DML产生的临时日志文件。默认 1048576 bytes (1MB).对于一个典型的排序操作来说,可以用下面的公式评估它消耗的内存:(6 /*FTS_NUM_AUX_INDEX*/ * (3*@@GLOBAL.innodb_sort_buffer_size)+ 2 * number_of_partitions * number_of_secondary_indexes_created* (@@GLOBAL.innodb_sort_buffer_size/dict_index_get_min_size(index)*/)* 8 /*64-bit sizeof *buf->tuples*/")
@@GLOBAL.innodb_sort_buffer_size/dict_index_get_min_size(index) indicates the maximum tuples held. 2 (@@GLOBAL.innodb_sort_buffer_size/dict_index_get_min_size(index)/) 8 /64-bit size of buf->tuples*/ indicates auxiliary pointers allocated.
对于在全文索引上的并行排序,需要再*innodb_ft_sort_pll_degree:
(6 /*FTS_NUM_AUX_INDEX*/ * @@GLOBAL.innodb_ft_sort_pll_degree)
转载地址:http://oczxx.baihongyu.com/