mysql各個記憶體引數的介紹,分執行緒獨享和全域性共享兩大類

lusklusklusk發表於2020-05-14

mysql的記憶體引數分別有兩大類,一類是執行緒獨享的記憶體,一類是全域性共享的記憶體


執行緒獨享記憶體:join_buffer_size、sort_buffer_size、read_buffer_size順序讀取資料緩衝區、read_rnd_buffer_size隨機讀取資料緩衝區、bulk_insert_buffer_size批次插入暫存使用記憶體、tmp_table_size內部臨時表使用記憶體、max_heap_table_size記憶體表使用記憶體

join_buffer_size:The minimum size of the buffer that is used for plain index scans, range index scans, and joins that do not use indexes and thus perform full table scans.When Batched Key Access is used, the value of join_buffer_size defines how large the batch of keys is in each request to the storage engine用於普通索引掃描、範圍索引掃描和不使用索引因而執行全表掃描的聯接的緩衝區的最小大小。當使用批處理金鑰訪問時,join_buffer_size的值定義了向儲存引擎發出的每個請求中的批處理金鑰的大小

sort_buffer_size:Each session that must perform a sort allocates a buffer of this size每個必須執行排序的會話都會分配一個這種大小的緩衝區

read_buffer_size:Each thread that does a sequential scan for a MyISAM table allocates a buffer of this size (in bytes) for each table it scans對MyISAM表進行順序掃描的每個執行緒為其掃描的每個表分配一個這種大小(以位元組為單位)的緩衝區

tmp_table_size:The maximum size of internal in-memory temporary tables. 記憶體中內部臨時表的最大大小。mysql臨時表分為兩種,一種是使用create temporary table建立的,稱為為外部臨時表,一種是因union、order by、group by、distinct等語句產生的,稱為內部臨時表

max_heap_table_size:This variable sets the maximum size to which user-created MEMORY tables are permitted to grow此變數設定允許使用者建立的記憶體表增長的最大大小





全域性共享記憶體:key_buffer_size(MyISAM索引快取)、query_cache_size為快取查詢結果而分配的記憶體量、thread_cache_size伺服器應該快取多少個執行緒以供重用、table_open_cache所有執行緒開啟的表的數量、binlog_cache_size二進位制日誌緩衝區、innodb_log_buffer_size事務日誌緩衝區、innodb_buffer_pool_size資料和索引緩衝區

key_buffer_size:Index blocks for MyISAM tables are buffered and are shared by all threads.MyISAM表的索引塊被緩衝並由所有執行緒共享。

query_cache_size:The amount of memory allocated for caching query results為快取查詢結果而分配的記憶體量

thread_cache_size:How many threads the server should cache for reuse. When a client disconnects, the client's threads are put in the cache if there are fewer than thread_cache_size threads there.The default value= 8+(max_connections/100)
MySQL裡面為了提高客戶端請求建立連線過程的效能,提供了一個連線池也就是 Thread_Cache池,將空閒的連線執行緒放在連線池中,而不是立即銷燬.這樣的好處就是,當又有一個新的請求的時候,mysql不會立即去建立連線 執行緒,而是先去Thread_Cache中去查詢空閒的連線執行緒,如果存在則直接使用,不存在才建立新的連線執行緒.

table_open_cache:The number of open tables for all threads. 為所有執行緒開啟的表的數量。

binlog_cache_size:The size of the cache to hold changes to the binary log during a transaction.在事務處理期間,快取儲存對二進位制日誌的更改的大小。

innodb_log_buffer_size:The size in bytes of the buffer that InnoDB uses to write to the log files on disk.InnoDB用來寫入磁碟上的日誌檔案的緩衝區的位元組大小。

innodb_buffer_pool_size:The size in bytes of the buffer pool, the memory area where InnoDB caches table and index data. The default value is 134217728 bytes (128MB).緩衝池的位元組大小,InnoDB快取表和索引資料的記憶體區域。預設值是134217728位元組(128MB)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2692232/,如需轉載,請註明出處,否則將追究法律責任。

相關文章