臨時表與中間表

2022-05-23 01:57:10 字數 981 閱讀 3871

外部臨時表:

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

內部臨時表:

內部臨時表是一種特殊輕量級的臨時表,用來進行效能優化。這種臨時表會被mysql自動建立並用來儲存某些操作的中間結果。這些操作可能包括在優化階段或者執行階段。這種內部表對使用者來說是不可見的,但是通過explain或者show status可以檢視mysql是否使用了內部臨時表用來幫助完成某個操作。

delete和trucate的區別:

truncate table wp_comments;

delete * from wp_comments;

其中truncate操作中的table可以省略,delete操作中的*可以省略。這兩者都是將wp_comments表中資料清空,不過也是有區別的,如下:

程度從強到弱

1、drop  table tb 

刪除表的結構和資料,沒有辦法找回

2、truncate (table) tb

刪除表中的所有記錄,表結構還在,不寫日誌,無法找回刪除的記錄,速度快,不能與where一起使用

3、delete from tb (where)

一行一行地刪除所有記錄,表結構還在,寫日誌,可以恢復的,速度慢。

區別:truncate和delete的區別

1、事務:truncate是不可以rollback的,但是delete是可以rollback的;

原因:truncate刪除整表資料(ddl語句,隱式提交),delete是一行一行的刪除,可以rollback

2、效果:truncate刪除後將重新水平線和索引(id從零開始) ,delete不會刪除索引    

3、 truncate 不能觸發任何delete觸發器。

4、delete 刪除可以返回行數

臨時表與表變數

臨時表 表變數的比較 1 臨時表 臨時表包括 以 開頭的區域性臨時表,以 開頭的全域性臨時表。a 儲存 不管是區域性臨時表,還是全域性臨時表,都會放存放在tempdb資料庫中。b 作用域 區域性臨時表 對當前連線有效,只在建立它的儲存過度 批處理 動態語句中有效,類似於c語言中區域性變數的作用域。全...

表變數與臨時表

什麼情況下使用表變數?什麼情況下使用臨時表?表變數 declare tb table id int identity 1,1 name varchar 100 insert tb select id,name from mytable where name like zhang 臨時表 select...

區域性臨時表與全域性臨時表區別與示例

區域性臨時表與全域性臨時表區別與示例 1 區域性臨時表 開頭 只對當前連線有效,當前連線斷開時自動刪除。2 全域性臨時表 開頭 對其它連線也有效,在當前連線和其他訪問過它的連線都斷開時自動刪除。3 不管區域性臨時表還是全域性臨時表,只要連線有訪問許可權,都可以用drop table tmp 或者dr...