国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql中如何引用臨時表

2024-07-24 12:32:54
字體:
來源:轉載
供稿:網友
  這篇文章主要介紹了mysql中如何用臨時表的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇mysql中如何用臨時表文章都會有所收獲,下面我們一起來看看吧。
 
  mysql中用臨時表的時候:1、用到TEMPTABLE算法或者是UNION查詢中的視圖時;2、用到DISTINCT查詢并且加上ORDER BY時;3、SQL中用到“SQL_SMALL_RESULT”選項時;4、用到FROM中的子查詢時等等。
 
  本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。
 
  MySQL在以下幾種情況會創建臨時表:
 
  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時創建的表;
 
  EXPLAIN 查看執行計劃結果的 Extra 列中,如果包含 Using Temporary 就表示會用到臨時表。
 
  當然了,如果臨時表中需要存儲的數據量超過了上限( tmp-table-size 或max-heap-table-size 中取其大者),這時候就需要生成基于磁盤的臨時表了。
 
  在以下幾種情況下,會創建磁盤臨時表:
 
  1、數據表中包含BLOB/TEXT列;
 
  2、在 GROUP BY 或者 DSTINCT 的列中有超過 512字符 的字符類型列(或者超過 512字節的 二進制類型列,在5.6.15之前只管是否超過512字節);
 
  3、在SELECT、UNION、UNION ALL查詢中,存在最大長度超過512的列(對于字符串類型是512個字符,對于二進制類型則是512字節);
 
  4、執行SHOW COLUMNS/FIELDS、DESCRIBE等SQL命令,因為它們的執行結果用到了BLOB列類型。
 
  從5.7.5開始,新增一個系統選項internal_tmp_disk_storage_engine 可定義磁盤臨時表的引擎類型為 InnoDB,而在這以前,只能使用 MyISAM。而在5.6.3以后新增的系統選項 default_tmp_storage_engine 是控制 CREATE TEMPORARY TABLE創建的臨時表的引擎類型,在以前默認是MEMORY,不要把這二者混淆了。
 
  關于“mysql中如何用臨時表”這篇文章的內容就介紹到這里,感謝各位的閱讀!
 

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柘城县| 兴文县| 沁水县| 长宁区| 香河县| 古丈县| 万安县| 文山县| 博乐市| 习水县| 内江市| 惠水县| 兰考县| 苏州市| 交口县| 石河子市| 循化| 左权县| 富顺县| 金华市| 哈密市| 揭阳市| 刚察县| 偏关县| 锡林浩特市| 遂宁市| 天门市| 连州市| 平南县| 凤阳县| 东源县| 龙州县| 新蔡县| 长丰县| 翼城县| 舒城县| 卢氏县| 北宁市| 渑池县| 长岭县| 长岭县|