mysql服务器中分配内存的方法
分配顺序读取数据缓冲区内存:read_buffer_size
这部分内存主要用于当需要顺序读取数据的时候,如无发使用索引的情况下的全表扫描,全索引扫描等。在这种时候,MySQL 按照数据的存储顺序依次读取数据块,每次读取的数据快首先会暂存在read_buffer_size中,当 buffer 空间被写满或者全部数据读取结束后,再将buffer中的数据返回给上层调用者,以提高效率。
分配随机读取数据缓冲区内存:read_rnd_buffer_size
当 MySQL 进行随机读取数据块的时候,会利用read_rnd_buffer_size缓冲区暂存读取的数据。如根据索引信息读取表数据,根据排序后的结果集与表进行Join等等。
分配排序内存:sort_buffer_size
MySQL 用此内存区域进行排序操作,完成客户端的排序请求。当我们设置的排序区缓存大小无法满足排序实际所需内存的时候,MySQL 会将数据写入磁盘文件来完成排序。
分配临时表内存:tmp_table_size
当临时表较小的时,MySQL 会将临时表创建成内存临时表,只有当 tmp_table_size 所设置的大小无法装下整个临时表的时候,MySQL 才会将该表创建成 MyISAM 存储引擎的表存放在磁盘上。