亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    mysql中什么時候用臨時表

    mysql中用臨時表的時候:1、用到TEMPTABLE算法或者是UNION查詢中的視圖時;2、用到DISTINCT查詢并且加上ORDER BY時;3、SQL中用到“SQL_SMALL_RESULT”選項時;4、用到FROM中的子查詢時等等。

    mysql中什么時候用臨時表

    本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。

    mysql中什么時候用臨時表

    MySQL在以下幾種情況會創(chuàng)建臨時表:

    1、UNION查詢;

    2、用到TEMPTABLE算法或者是UNION查詢中的視圖;

    3、ORDER BY和GROUP BY的子句不一樣時;

    4、表連接中,ORDER BY的列不是驅(qū)動表中的;

    5、DISTINCT查詢并且加上ORDER BY時;

    6、SQL中用到SQL_SMALL_RESULT選項時;

    7、FROM中的子查詢;

    8、子查詢或者semi-join時創(chuàng)建的表;

    EXPLAIN 查看執(zhí)行計劃結(jié)果的 Extra 列中,如果包含 Using Temporary 就表示會用到臨時表。

    當然了,如果臨時表中需要存儲的數(shù)據(jù)量超過了上限( tmp-table-size 或max-heap-table-size 中取其大者),這時候就需要生成基于磁盤的臨時表了。

    在以下幾種情況下,會創(chuàng)建磁盤臨時表:

    1、數(shù)據(jù)表中包含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í)行結(jié)果用到了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視頻教程

    贊(0)
    分享到: 更多 (0)
    網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號