消除mysql內部臨時表

2021-09-06 21:22:44 字數 305 閱讀 2192

在一些sql請求中,mysql會建立臨時表,可能建立到記憶體中,也可能由記憶體轉存到磁碟。

會建立臨時表的查詢:

1.group by的列沒有索引,必建立臨時表

2.order by與group by 為不同列時,或多表查詢時order by,group by 包含的列不是第一張表的列,必產生臨時表。

3.distinct 與 order by 一起使用可能會產生臨時表

4.union合併查詢時會用到臨時表

如果查詢包括group by 但使用者想要避免排序結果的消耗,則可以指定order by null禁止排序

MySQL 36 內部臨時表

36.1 mysql中的兩種臨時表 通過create temporary table建立的臨時表,這種臨時表稱為外部臨時表。這種臨時表只對當前使用者可見,當前會話結束的時候,該臨時表會自動關閉。這種臨時表的命名與非臨時表可以同名。內部臨時表會被mysql自動建立並用來儲存某些操作的中間結果,通過ex...

mysql臨時表更新 MySql 臨時表

今天在專案中遇到乙個,當mysql的in語句中資料量很大時,建立乙個臨時表的例子。於是樓主整理了一下關於臨時表的知識,與大家分享一下 首先,臨時表只在當前連線可見,當關閉連線時,mysql會自動刪除表並釋放所有空間。因此在不同的連線中可以建立同名的臨時表,並且操作屬於本連線的臨時表。建立臨時表 cr...

mysql 臨時表 限制 Mysql臨時表

當你建立臨時表的時候,你可以使用temporary關鍵字。如 create temporary table tmp table name varchar 10 not null,passwd char 6 not null 或create temporary table if not exists ...