這篇文章主要介紹了MySQL中如何用臨時表的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇mysql中如何用臨時表文章都會有所收獲,下面我們一起來看看吧。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、虛擬空間、營銷軟件、網站建設、新賓網站維護、網站推廣。
mysql中用臨時表的時候:1、用到TEMPTABLE算法或者是UNION查詢中的視圖時;2、用到DISTINCT查詢并且加上ORDER BY時;3、SQL中用到“SQL_SMALL_RESULT”選項時;4、用到FROM中的子查詢時等等。
本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。
MySQL在以下幾種情況會創(chuàng)建臨時表:
1、UNION查詢;
2、用到TEMPTABLE算法或者是UNION查詢中的視圖;
3、ORDER BY和GROUP BY的子句不一樣時;
4、表連接中,ORDER BY的列不是驅動表中的;
5、DISTINCT查詢并且加上ORDER BY時;
6、SQL中用到SQL_SMALL_RESULT選項時;
7、FROM中的子查詢;
8、子查詢或者semi-join時創(chuàng)建的表;
EXPLAIN 查看執(zhí)行計劃結果的 Extra 列中,如果包含 Using Temporary 就表示會用到臨時表。
當然了,如果臨時表中需要存儲的數(shù)據量超過了上限( tmp-table-size 或max-heap-table-size 中取其大者),這時候就需要生成基于磁盤的臨時表了。
在以下幾種情況下,會創(chuàng)建磁盤臨時表:
1、數(shù)據表中包含BLOB/TEXT列;
2、在 GROUP BY 或者 DSTINCT 的列中有超過 512字符 的字符類型列(或者超過 512字節(jié)的 二進制類型列,在5.6.15之前只管是否超過512字節(jié));
3、在SELECT、UNION、UNION ALL查詢中,存在最大長度超過512的列(對于字符串類型是512個字符,對于二進制類型則是512字節(jié));
4、執(zhí)行SHOW COLUMNS/FIELDS、DESCRIBE等SQL命令,因為它們的執(zhí)行結果用到了BLOB列類型。
從5.7.5開始,新增一個系統(tǒng)選項internal_tmp_disk_storage_engine 可定義磁盤臨時表的引擎類型為 InnoDB,而在這以前,只能使用 MyISAM。而在5.6.3以后新增的系統(tǒng)選項 default_tmp_storage_engine 是控制 CREATE TEMPORARY TABLE創(chuàng)建的臨時表的引擎類型,在以前默認是MEMORY,不要把這二者混淆了。
見下例:
關于“mysql中如何用臨時表”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“mysql中如何用臨時表”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當前題目:mysql中如何用臨時表
文章分享:http://sd-ha.com/article48/ggejhp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供Google、App開發(fā)、網站設計公司、網站營銷、定制開發(fā)、網站策劃
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)