国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql的tmp_table_size和max_heap_table_size

2024-07-24 12:40:12
字體:
來源:轉載
供稿:網友

先說下tmp_table_size吧:

它規定了內部內存臨時表的最大值,每個線程都要分配。(實際起限制作用的是tmp_table_size和max_heap_table_size的最小值。)如果內存臨時表超出了限制,MySQL就會自動地把它轉化為基于磁盤的MyISAM表,存儲在指定的tmpdir目錄下,默認:

mysql> show variables like "tmpdir";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir        | /tmp/ |
+---------------+-------+

優化查詢語句的時候,要避免使用臨時表,如果實在避免不了的話,要保證這些臨時表是存在內存中的。如果需要的話并且你有很多group by語句,并且你有很多內存,增大tmp_table_size(和max_heap_table_size)的值。這個變量不適用與用戶創建的內存表(memory table).

你可以比較內部基于磁盤的臨時表的總數和創建在內存中的臨時表的總數(Created_tmp_disk_tables和Created_tmp_tables),一般的比例關系是:

Created_tmp_disk_tables/Created_tmp_tables<5%

max_heap_table_size

這個變量定義了用戶可以創建的內存表(memory table)的大小.這個值用來計算內存表的最大行數值。這個變量支持動態改變,即set @max_heap_table_size=#

,但是對于已經存在的內存表就沒有什么用了,除非這個表被重新創建(create table)或者修改(alter table)或者truncate table。服務重啟也會設置已經存在的內存表為全局max_heap_table_size的值。

這個變量和tmp_table_size一起限制了內部內存表的大小。

如果想知道更詳細的信息,請參考“MySQL是怎樣使用內部臨時表的?”和“內存存儲引擎

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西青区| 城口县| 汨罗市| 通州市| 涿州市| 承德县| 吕梁市| 宜城市| 吴旗县| 台安县| 西昌市| 汉寿县| 化州市| 天水市| 东阿县| 梅河口市| 平阴县| 宜黄县| 资源县| 南投县| 牙克石市| 开封县| 建宁县| 平潭县| 崇义县| 罗定市| 三江| 清水县| 商洛市| 漠河县| 崇文区| 渭南市| 西青区| 什邡市| 宝兴县| 安徽省| 武川县| 罗江县| 汉川市| 白山市| 泰安市|