av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

MySQL自我保護參數(shù),以達到保護數(shù)據(jù)庫穩(wěn)定性的目的

之前(MySQL自我保護工具--pt-kill ) 提到用pt-kill工具來kill相關(guān)的會話,來達到保護數(shù)據(jù)庫的目的,本文再通過修改數(shù)據(jù)庫參數(shù)的方式達到阻斷長時間運行的SQL的目的。

創(chuàng)新互聯(lián)建站成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元宜賓做網(wǎng)站,已為上家服務(wù),為宜賓各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

1、參數(shù)介紹

mysql5.6及以后,數(shù)據(jù)庫端新增了新變量來限制語句最大執(zhí)行時間,用于在服務(wù)端對select語句進行超時時間限制,能有效控制在數(shù)據(jù)庫(建議在主庫)的慢查詢情況,以達到保護數(shù)據(jù)庫穩(wěn)定性的目的。

不過mysql5.7.8版本前后參數(shù)名有變更,例如:

mysql5.6 - mysql5.7.8前的版本中,參數(shù)名為:max_statement_time (毫秒) 
mysql5.7.8及以后,參數(shù)改成:max_execution_time (毫秒)

另外,該參數(shù)有g(shù)lobal 及session 2種級別,即可在部分會話中動態(tài)調(diào)整本會話的超時時間。

2、操作演示

在測試環(huán)境建一張大表用來演示,該案例可查看歷史文章或批量造數(shù)據(jù)實現(xiàn)。

因當(dāng)前基本都使用5.7及以后版本,因此本次使用MySQL5.7版本數(shù)據(jù)庫進行演示。

(1)參數(shù)默認值

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

默認值為0,代表不限制最大執(zhí)行時間。

例如執(zhí)行如下SQL時,運行3s+。

mysql> select  count(*) from  test1;
+----------+
| count(*) |
+----------+
| 21991575 |
+----------+
1 row in set (3.89 sec)

(2)修改參數(shù)演示

修改本會話的參數(shù)(session級別),演示本次會話的情況,這樣不會影響其他會話的運行,如需整個實例調(diào)整,則修改全局變量即可。

mysql> set session   max_execution_time=1000;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'max_execution_time';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| max_execution_time | 0 |
+--------------------+-------+
1 row in set (0.01 sec)
mysql> show variables like 'max_execution_time';
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| max_execution_time | 1000 |
+--------------------+-------+
1 row in set (0.00 sec)

此時執(zhí)行查詢,則會因為超過1s而被中斷。

mysql> select  count(*) from  test1;
ERROR 3024 (HY000): Query execution was interrupted, maximum statement execution time exceeded

PS:修改全局變量后,注意已經(jīng)連接的會話是不生效的,另外,此參數(shù),只對select起作用,對DDL及UPDATE、delete操作不生效,例如:

mysql> set session   max_execution_time=1000;
Query OK, 0 rows affected (0.00 sec)
mysql> alter table test1 add tt int ;
Query OK, 0 rows affected (25.65 sec)
Records: 0 Duplicates: 0 Warnings: 0

3、小結(jié)

生產(chǎn)環(huán)境較常見的情況是業(yè)務(wù)代碼已經(jīng)超時退出了與數(shù)據(jù)庫的交互,但是數(shù)據(jù)庫里依舊運行著發(fā)起的SQL,如果頻繁發(fā)起重試,則,慢SQL會越來越多,導(dǎo)致數(shù)據(jù)庫負載高,影響穩(wěn)定性及可用性。因此,建議部署pt-kill工具或者修改最大執(zhí)行時間參數(shù),避免長時間運行select語句運行。

相對于pt-kill工具,修改參數(shù)的方式較便捷,但局限性較大,因此需要根據(jù)業(yè)務(wù)需要進行部署。


當(dāng)前名稱:MySQL自我保護參數(shù),以達到保護數(shù)據(jù)庫穩(wěn)定性的目的
本文路徑:http://uogjgqi.cn/article/dphipco.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流