<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      代碼改變世界

      MySQL的系統變量max_execution_time小結

      2024-05-28 11:03  瀟湘隱者  閱讀(4025)  評論(0)    收藏  舉報

      參數介紹:

      MySQL社區版MySQL 5.7.8開始,新增了MAX_EXECUTION_TIME這個系統變量,它用來限制SQL語句的執行時間,確切來說是限制只讀SELECT語句。如果查詢語句的執行時長超過這個閾值,MySQL將自動停止該SQL語句的執行。如果其值為 0,表示不啟用該超時限制功能。該參數/變量單位是毫秒(milliseconds),千萬要注意,單位是毫秒。不是秒。

      官方文檔[1]關于系統變量max_execution_time的描述如下:

      The execution timeout for SELECT statements, in milliseconds. If the value is 0, timeouts are not enabled.

      max_execution_time applies as follows:

      The global max_execution_time value provides the default for the session value for new connections. The session value applies to SELECT executions executed within the session that include no MAX_EXECUTION_TIME(N) optimizer hint or for which N is 0.

      max_execution_time applies to read-only SELECT statements. Statements that are not read only are those that invoke a stored function that modifies data as a side effect.

      max_execution_time is ignored for SELECT statements in stored programs.or SELECT statements in stored programs.

      注意事項:

      1. max_execution_time只對只讀的select有效,對DDL及UPDATE、DELETE等DML操作不生效
      2. 只有頂層(即不是子查詢)SQL受到影響
      3. 存儲程序中的 SELECT 語句,不受影響。即使存儲過程中SELECT語句使用MAX_EXECUTION_TIME提示也不受影響

      生產環境較常見的情況是,由于沒有正確配置JDBC等驅動,導致業務代碼已經超時退出了與數據庫的交互,但是數據庫里依舊運行著發起的SQL,如果頻繁發起重試,則慢SQL會越來越多,導致數據庫負載高,影響穩定性及可用性。因此,建議設置參數max_execution_time來解決這種情況。但是,由于生產環境的復雜性,需要跟開發人員先協商,另外,這個值可能需要設置的相對大一些,避免影響業務。總之來說是謹慎使用。

      其實在MySQL 5.6的時候,其他分支版本(從所查資料來看,最開始是twitter的分支版本[2]引入的,也被Percona Server 5.6分支版本并入)引入了系統變量max_statement_time來控制MySQL的最長執行時間。如果超過該系統變量的值,查詢將會自動失敗,默認是不限制。

      不過MySQL社區版在MySQL 5.6并未引入這個系統變量,從社區版MySQL 5.7.4開始,才開始引入了系統變量max_statement_time。不過這個系統變量在MySQL 5.7.8被移除。具體可以參考官方文檔[3]。其實這個系統變量之所以在MySQL 5.7.8被移除,是因為用系統變量max_execution_time替換了系統變量max_statement_time

      • max_statement_time: Statement execution timeout value. Added in MySQL 5.7.4.
      • max_statement_time: Statement execution timeout value. Removed in MySQL 5.7.8.

      參數設置

      全局級別

      方法1.在參數文件my.cnf中設置

      max_execution_time=20000

      注意:這種方法,需要重啟MySQL數據庫實例才能生效。

      方法2:

      mysql> set global max_execution_time=20000;
      Query OK, 0 rows affected (0.00 sec)

      注意,設置全局系統變量后,對當前會話不生效,正確來說已經建立連接的會話是不生效的,它只對全局系統變量設置后,新建立的會話生效。如下所示,另外,重啟后會系統變量值會失效。

      mysql> show variables like 'max_execution_time';
      +--------------------+-------+
      | Variable_name      | Value |
      +--------------------+-------+
      | max_execution_time | 0     |
      +--------------------+-------+
      1 row in set (0.00 sec)

      mysql> 
      mysql> select  @@global.max_execution_time, @@session.max_execution_time;

      如果想重啟后也能生效,可以使用下面SQL設置

      mysql> set persist max_execution_time=20000;
      Query OK, 0 rows affected (0.01 sec)

      會話級別

      mysql> set max_execution_time=1000;
      Query OK, 0 rows affected (0.00 sec)

      SQL語句級別

      其實這里使用HINT來限制SELECT查詢的最大時長,也的確是在語句級別執行限制。

      SELECT /*+ MAX_EXECUTION_TIME(3000) */ * FROM table_name;

      上述SQL語句表示,執行該查詢,并設置執行時間為3秒,在超時時間到達時,MySQL將自動停止該查詢的執行。注意:該選項只在使用InnoDB的默認存儲引擎時有效,如果需要在其他存儲引擎中使用該選項,請自行查閱文檔或手冊。

      mysql>  SELECT /*+ MAX_EXECUTION_TIME(2000) */ * FROM TEST;
      ERROR 3024 (HY000): Query execution was interrupted, maximum statement execution time exceeded
      mysql> 

      參考資料

      [1]

      1: https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_execution_time

      [2]

      2: https://github.com/twitter-forks/mysql/wiki/Statement-Timeout

      [3]

      3: https://dev.mysql.com/doc/refman/5.7/en/added-deprecated-removed.html

      主站蜘蛛池模板: 久久天天躁狠狠躁夜夜avapp| 中文字幕国产日韩精品| 一区二区偷拍美女撒尿视频 | 少妇宾馆粉嫩10p| 亚洲一卡2卡三卡四卡精品| 久久亚洲国产品一区二区| 德清县| 手机看片福利一区二区三区 | 欧美三级中文字幕在线观看| 大地资源免费视频观看| 久久人人爽人人爽人人片| 久久精品道一区二区三区| 成人午夜在线观看日韩| 临武县| 在线无码免费看黄网站| 亚洲综合无码一区二区| 一卡2卡三卡4卡免费网站| 亚洲成人av一区二区| 亚洲精品久久麻豆蜜桃| 开心五月深深爱天天天操| 亚欧洲乱码视频在线观看| 国产午夜福利在线机视频| 亚洲精品无码久久毛片| 国产精品老熟女露脸视频| 亚洲国产成人综合精品| 美女内射福利大全在线看| 亚洲国产高清av网站| 日本高清中文字幕免费一区二区| 国产一区二区三区尤物视频| 国产日韩久久免费影院| 国产精品国产精品偷麻豆| 日韩精品国产精品十八禁| 1000部拍拍拍18勿入免费视频下载 | 偷窥盗摄国产在线视频| 人妻系列无码专区免费| 成熟熟女国产精品一区二区 | 国产成人亚洲精品成人区| 亚洲成a人片在线观看中| 久久―日本道色综合久久| 日韩少妇人妻vs中文字幕| 婷婷丁香五月六月综合激情啪|