mysql不支援臨時表怎麼辦,如何修改mysql臨時表記憶體表的大小限制

時間 2022-02-04 15:15:03

1樓:

內部臨時表有兩種型別:一種是heap臨時表,這種臨時表的所有資料都會存在記憶體中,對於這種表的操作不需要io操作。

另一種是ondisk臨時表,顧名思義,這種臨時表會將資料儲存在磁碟上。

ondisk臨時表用來處理中間結果比較大的操作。如果heap臨時表儲存的資料大於max_heap_table_size(詳情請參考mysql手冊中系統變數部分),heap臨時表將會被自動轉換成ondisk臨時表。ondisk臨時表在5.

7中可以通過internal_tmp_disk_storage_engine系統變數選擇使用myisam引擎或者innodb引擎。

2樓:

自己建立一個,用完再刪除嘛!

3樓:愛可生雲資料庫

我們仍使用 實驗 05 中的環境,略去準備資料的過程。

我們仍然使用兩個會話,一個會話 run,用於執行主 sql;另一個會話 ps,用於進行 performance_schema 的觀察:

將 performance_schema 中的統計量重置,

臨時表的表大小限制取決於引數  tmp_table_size 和 max_heap_table_size 中較小者,我們實驗中以設定 max_heap_table_size 為例。

我們將會話級別的臨時表大小設定為 2m(小於上次實驗中臨時表使用的空間),執行使用臨時表的 sql:

檢視記憶體的分配記錄:

會發現記憶體分配略大於 2m,我們猜測臨時表會比配置略多一點消耗,可以忽略。

可以看到語句使用了一次需要落磁碟的臨時表。

那麼這張臨時表用了多少的磁碟呢?

重做實驗,略過。

再檢視 performance_schema 的統計值:

可以看到幾個現象:

1. 臨時表空間被寫入了 7.92mib 的資料。

2. 這些資料是語句寫入後,慢慢逐漸寫入的。

可以看到寫入的執行緒是 page_clean_thread,是一個刷髒操作,這樣就能理解資料為什麼是慢慢寫入的。

也可以看到每個 io 操作的大小是 16k,也就是刷資料頁的操作。

結論:我們可以看到,

1. mysql 會基本遵守 max_heap_table_size 的設定,在記憶體不夠用時,直接將錶轉到磁碟上儲存。

2. 由於引擎不同(記憶體中表引擎為 heap,磁碟中表引擎則跟隨 internal_tmp_disk_storage_engine 的配置),本次實驗寫磁碟的資料量和 實驗 05 中使用記憶體的資料量不同。

3. 如果臨時表要使用磁碟,表引擎配置為 innodb,那麼即使臨時表在一個時間很短的 sql 中使用,且使用後即釋放,釋放後也會刷髒頁到磁碟中,消耗部分 io。

如何修改mysql臨時表記憶體表的大小限制

4樓:騰訊電腦管家

mysql的記憶體表的大小在my.cnf檔案中有定義,需要通過修改配置來修改臨時表的大小限制:

[mysqld]

##記憶體表容量

max_heap_table_size=1024m##臨時表容量

tmp_table_size=1024m

在mysql配置檔案的mysqld節點下,max_heap_table_size指定的是記憶體表的最大記憶體,而tmp_table_size指定的是臨時表的最大大小。

5樓:愛可生雲資料庫

mysql 需要建立隱式臨時表來解決某些型別的查詢。往往查詢的排序階段需要依賴臨時表。例如,當您使用 group by,order by 或distinct 時。

這樣的查詢分兩個階段執行:首先是收集資料並將它們放入臨時表中,然後是在臨時表上執行排序。

對於某些 union 語句,不能合併的 view,子查詢時用到派生表,多表 update 以及其他一些情況,還需要使用臨時表。如果臨時表很小,可以到記憶體中建立,否則它將在磁碟上建立。mysql 在記憶體中建立了一個表,如果它變得太大,就會被轉換為磁碟上儲存。

記憶體臨時表的最大值由 tmp_table_size 或 max_heap_table_size 值定義,以較小者為準。mysql 5.7 中的預設大小為 16mb。

如果執行查詢的資料量較大,或者尚未查詢優化,則可以增加該值。設定閾值時,請考慮可用的 ram 大小以及峰值期間的併發連線數。你無法無限期地增加變數,因為在某些時候你需要讓 mysql 使用磁碟上的臨時表。

注意:如果涉及的表具有 text 或 blob 列,則即使大小小於配置的閾值,也會在磁碟上建立臨時表。

父母不支援我的夢想怎麼辦,為什麼父母不支援我的夢想

芝士排骨年糕 我覺得你可以不用太在意他們的看法,你的生活他們又不會懂,你的生活他們又沒有經歷過,怎麼會很好地理解你的夢想,所以有時候看淡一些他人的看法對自己也是一種釋放。你自己的生活要靠你自己去把握,不能一味只是聽別人所說的,他們所說的那些也只不過是在他們自己的生活基礎上,看他們自己的生活經驗來看你...

家長不支援練體育,怎麼辦,家長不支援練體育,怎麼辦

沒辦法,你家長鼠目寸光,不是靠你個人能改變的。我自己的孩子是我走後門幫他參加田徑隊訓練的。如果單是老師反對家長可出面溝通,如果是家長反對你只有放棄了,畢竟他們是你的監護人,他們有決定權。聽我的越早放棄越好,你家長的觀念是幾十年形成的,不是一下子能改過來的。等他們改變的時候你已經成年了。不要和父母爭得...

老公不支援我學車 我該怎麼辦

工冰 不能怪他,你們開車確實很離譜,他因為心裡有數,才反對,我認識一女的,坐過一回她的車,太恐怖了,還開了三年了,在路上亂竄,瞎併線,壓實線,突然加速,急剎,不好好看標誌,逆行,就沒有她不敢弄的,甚至連紅燈都不看,我坐在旁邊一直在出冷汗。 告訴你老公,要麼支援你學車,然後給你買一輛安全性極高的好車。...