mysql服務器中分配內存的方法
1.分配順序讀取數據緩沖區內存:read_buffer_size
這部分內存主要用于當需要順序讀取數據的時候,如無發使用索引的情況下的全表掃描,全索引掃描等。在這種時候,MySQL 按照數據的存儲順序依次讀取數據塊,每次讀取的數據快首先會暫存在read_buffer_size中,當 buffer 空間被寫滿或者全部數據讀取結束后,再將buffer中的數據返回給上層調用者,以提高效率。
2.分配隨機讀取數據緩沖區內存:read_rnd_buffer_size
當 MySQL 進行隨機讀取數據塊的時候,會利用read_rnd_buffer_size緩沖區暫存讀取的數據。如根據索引信息讀取表數據,根據排序后的結果集與表進行Join等等。
3.分配排序內存:sort_buffer_size
MySQL 用此內存區域進行排序操作,完成客戶端的排序請求。當我們設置的排序區緩存大小無法滿足排序實際所需內存的時候,MySQL 會將數據寫入磁盤文件來完成排序。
4.分配臨時表內存:tmp_table_size
當臨時表較小的時,MySQL 會將臨時表創建成內存臨時表,只有當 tmp_table_size 所設置的大小無法裝下整個臨時表的時候,MySQL 才會將該表創建成 MyISAM 存儲引擎的表存放在磁盤上。