《Mysql實例mysql tmp_table_size和max_heap_table_size大小配置》要點:
本文介紹了Mysql實例mysql tmp_table_size和max_heap_table_size大小配置,希望對您有用。如果有疑問,可以聯系我們。
MYSQL學習針對16G內存的配置
MYSQL學習先說下tmp_table_size吧:
MYSQL學習它規定了內部內存臨時表的最大值,每個線程都要分配.(實際起限制作用的是tmp_table_size和max_heap_table_size的最小值.)如果內存臨時表超越了限制,MySQL就會自動地把它轉化為基于磁盤的MyISAM表,存儲在指定的tmpdir目錄下,默認:
MYSQL學習mysql> show variables like "tmpdir";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir??????? | /tmp/ |
+---------------+-------+
MYSQL學習優化查詢語句的時候,要避免使用臨時表,如果實在避免不了的話,要保證這些臨時表是存在內存中的.如果必要的話并且你有很多group by語句,并且你有很多內存,增大tmp_table_size(和max_heap_table_size)的值.這個變量不適用與用戶創建的內存表(memory table).
MYSQL學習你可以比擬內部基于磁盤的臨時表的總數和創建在內存中的臨時表的總數(Created_tmp_disk_tables和Created_tmp_tables),一般的比例關系是:
MYSQL學習Created_tmp_disk_tables/Created_tmp_tables<5%
MYSQL學習max_heap_table_size
MYSQL學習這個變量定義了用戶可以創立的內存表(memory table)的大小.這個值用來計算內存表的最大行數值.這個變量支持動態改變,即set @max_heap_table_size=#
MYSQL學習,但是對于已經存在的內存表就沒有什么用了,除非這個表被重新創立(create table)或者修改(alter table)或者truncate table.服務重啟也會設置已經存在的內存表為全局max_heap_table_size的值.
MYSQL學習這個變量和tmp_table_size一起限制了內部內存表的年夜小.
MYSQL學習如果想知道更詳細的信息,請參考“MySQL是怎樣使用內部暫時表的?”和“內存存儲引擎”
維易PHP培訓學院每天發布《Mysql實例mysql tmp_table_size和max_heap_table_size大小配置》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。