mysql 使用過程中常用的兩種臨時表

2021-07-28 09:59:45 字數 746 閱讀 9850

曉幕晨雪

2017-02-24 14:26

一是外部臨時表

通過create temporary table 建立的臨時表,這種臨時表稱為外部臨時表。這種臨時表只對當前使用者可見,當前會話結束的時候,該臨時表會自動關閉。這種臨時表的命名與非臨時表可以同名(同名後非臨時表將對當前會話不可見,直到臨時表被刪除)。

二是內部臨時表

內部臨時表是一種特殊輕量級的臨時表,用來進行效能優化。這種臨時表會被mysql自動建立並用來儲存某些操作的中間結果。這些操作可能包括在優化階段或者執行階段。這種內部表對使用者來說是不可見的,但是通過explain或者show status可以檢視mysql是否使用了內部臨時表用來幫助完成某個操作。內部臨時表在sql語句的優化過程中扮演著非常重要的角色, mysql中的很多操作都要依賴於內部臨時表來進行優化。但是使用內部臨時表需要建立表以及中間資料的訪問代價,所以使用者在寫sql語句的時候應該盡量的去避免使用臨時表。

內部臨時表有兩種型別:一種是heap臨時表,這種臨時表的所有資料都會存在記憶體中,對於這種表的操作不需要io操作。另一種是ondisk臨時表,顧名思義,這種臨時表會將資料儲存在磁碟上。ondisk臨時表用來處理中間結果比較大的操作。如果heap臨時表儲存的資料大於max_heap_table_size(詳情請參考mysql手冊中系統變數部分),heap臨時表將會被自動轉換成ondisk臨時表。ondisk臨時表在5.7中可以通過internal_tmp_disk_storage_engine系統變數選擇使用myisam引擎或者innodb引擎。

Jenkins使用過程中常見的問題

解決方案 5 重新訪問localhost 8080 二 構建時報 python 不是內部或外部命令,也不是可執行的程式 解決方案 python的路徑沒有新增到jenkins環境變數 1 回到首頁選擇 系統管理 系統設定 全域性屬性 選項 勾選 環境變數 點選 新增 按鈕 出現鍵值對輸入,鍵輸入pat...

Git使用過程中常見問題

windows使用git時初始話時出現 warning lf will be replaced by crlf windows中的換行符為 crlf,而在linux下的換行符為lf,所以在執行add 時出現提示,解決辦法 rm rf git 刪除.git git config global core...

mysql 使用過程中遇到的錯誤

修改hibernate.cfg.xml檔案 hibernate.connection.url jdbc mysql localhost 3306 hibernatedemo connection.useunicode true connection.characterencoding utf 8 參...