<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • Linux數據庫MySQL內部臨時表策略

    時間:2024-10-11 19:51:58 Linux認證 我要投稿
    • 相關推薦

    Linux數據庫MySQL內部臨時表策略

      MySQL內部臨時表的使用有一定的策略,從源碼中關于SQL查詢是否需要內部臨時表。可以總結如下:

      1、DISTINCT查詢,但是簡單的DISTINCT查詢,比如對primary key、unique key等DISTINCT查詢時,查詢優化器會將DISTINCT條件優化,去除DISTINCT條件,也不會創建臨時表;

      2、不是第一個表的字段使用ORDER BY 或者GROUP BY;

      3、ORDER BY和GROUP BY使用不同的順序;

      4、用戶需要緩存結果;

      5、ROLLUP查詢。

      源碼如下所示

      代碼地址:sql_select.cc:854, 函數:JOIN::optimize(),位置:sql_select.cc:1399

      /*

      Check if we need to create a temporary table.

      This has to be done if all tables are not already read (const tables)

      and one of the following conditions holds:

      - We are using DISTINCT (simple distincts are already optimized away)

      - We are using an ORDER BY or GROUP BY on fields not in the first table

      - We are using different ORDER BY and GROUP BY orders

      - The user wants us to buffer the result.

      When the WITH ROLLUP modifier is present, we cannot skip temporary table

      creation for the DISTINCT clause just because there are only const tables.

      */

      need_tmp= (( const_tables != tables &&

      (( select_distinct || !simple_order || !simple_group) ||

      ( group_list && order ) ||

      test(select_options & OPTION_BUFFER_RESULT))) ||

      ( rollup.state != ROLLUP:: STATE_NONE && select_distinct ));

      內部臨時表使用原則

      但是使用了內部臨時表,那么他是怎么存儲的呢?原則是這樣的:

      1、當查詢結果較小的情況下,使用heap存儲引擎進行存儲。也就是說在內存中存儲查詢結果。

      2、當查詢結果較大的情況下,使用myisam存儲引擎進行存儲。

      3、當查詢結果最初較小,但是不斷增大的情況下,將會有從heap存儲引擎轉化為myisam存儲引擎存儲查詢結果。

      什么情況算是查詢結果較小呢?從源碼中if的幾個參數可以看出:

      1、有blob字段的情況;

      2、使用唯一限制的情況;

      3、當前表定義為大表的情況;

      4、查詢結果的選項為小結果集的情況;

      5、查詢結果的選項為強制使用myisam的情況。

    【Linux數據庫MySQL內部臨時表策略】相關文章:

    2016年Linux認證基礎知識:mysql數據庫的全量備份08-25

    Oracle數據庫臨時表管理技巧06-15

    jboss配置mysql數據庫連接池09-02

    酒店內部營銷管理策略10-29

    2017年計算機二級mysql數據庫模擬試題06-25

    數據庫系統的內部結構體系簡介10-21

    企業內部物流管理策略10-21

    mysql SQL語句積累參考10-02

    PHP常用MySql操作介紹05-11

    Linux認證概念10-29

    主站蜘蛛池模板: 国产99视频精品专区| 亚洲一区二区精品视频| 精品欧美一区二区在线观看 | 久久香蕉超碰97国产精品| 98精品国产自产在线XXXX| 久久精品国产清高在天天线| 久久99精品国产麻豆蜜芽| 久热这里只精品99re8久| 精品国偷自产在线| 中文精品99久久国产| 精品一区二区三区四区在线| 日本精品久久久中文字幕| 国产精品扒开腿做爽爽爽视频 | 久久精品国产一区二区电影| 精品久久久久久久久中文字幕| 久久精品99久久香蕉国产色戒| 亚洲精品成人区在线观看| 久久精品国产国产精品四凭| 97久久精品人人做人人爽| 久久精品国产精品青草| 2021精品国产综合久久| 99久久精品午夜一区二区| 国产精品亚洲а∨无码播放| 日韩精品人妻系列无码专区免费 | 欧洲成人午夜精品无码区久久 | 国产亚洲精品自在线观看| 亚洲国产精品嫩草影院| 国产精品一国产精品| 国产成人精品天堂| freesexvideos精品老师毛多| 国精品无码一区二区三区在线| 日本内射精品一区二区视频 | 国产精品igao视频网网址| 精品无人码麻豆乱码1区2区| 亚洲av永久无码精品漫画 | 四虎国产精品永久在线看| 好湿好大硬得深一点动态图91精品福利一区二区 | 下载天堂国产AV成人无码精品网站| 免费精品精品国产欧美在线欧美高清免费一级在线 | 精品久久久久香蕉网| 国产精品区免费视频|