欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL慢查詢優(yōu)化解決問題

 更新時間:2022年03月16日 10:55:31   作者:@sonny-zhang  
這篇文章主要介紹了MySQL慢查詢優(yōu)化解決問題,MySQL的慢查詢,全名是慢查詢日志,是MySQL提供的一種日志記錄,用來記錄在MySQL中響應時間超過閥值的語句,下文詳細介紹慢查詢的調優(yōu)情況,需要的小伙伴可以參考一下

1.  MySQL慢查詢介紹

  MySQL的慢查詢日志是MySQL提供的一種日志記錄,它用來記錄在MySQL中響應時間超過閥值的語句,具體指運行時間超過long_query_time值的SQL,則會被記錄到慢查詢日志中。long_query_time的默認值為10,意思是運行10S以上的語句。默認情況下,Mysql數(shù)據(jù)庫并不啟動慢查詢日志,需要我們手動來設置這個參數(shù),當然,如果不是調優(yōu)需要的話,一般不建議啟動該參數(shù),因為開啟慢查詢日志會或多或少帶來一定的性能影響。慢查詢日志支持將日志記錄寫入文件,也支持將日志記錄寫入數(shù)據(jù)庫表

慢查詢日志相關參數(shù):

MySQL 慢查詢的相關參數(shù)解釋:

  • slow_query_log    :是否開啟慢查詢日志,1表示開啟,0表示關閉。
  • log-slow-queries  :舊版(5.6以下版本)MySQL數(shù)據(jù)庫慢查詢日志存儲路徑。可以不設置該參數(shù),系統(tǒng)則會默認給一個缺省的文件host_name-slow.log
  • slow-query-log-file:新版(5.6及以上版本)MySQL數(shù)據(jù)庫慢查詢日志存儲路徑??梢圆辉O置該參數(shù),系統(tǒng)則會默認給一個缺省的文件host_name-slow.log
  • long_query_time :慢查詢閾值,當查詢時間多于設定的閾值時,記錄日志。
  • log_queries_not_using_indexes:未使用索引的查詢也被記錄到慢查詢日志中(可選項)。
  • log_output:日志存儲方式。log_output='FILE'表示將日志存入文件,默認值是'FILE'。log_output='TABLE'表示將日志存入數(shù)據(jù)庫,這樣日志信息就會被寫入到mysql.slow_log表中。MySQL數(shù)據(jù)庫支持同時兩種日志存儲方式,配置的時候以逗號隔開即可,如:log_output='FILE,TABLE'。日志記錄到系統(tǒng)的專用日志表中,要比記錄到文件耗費更多的系統(tǒng)資源,因此對于需要啟用慢查詢日志,又需要能夠獲得更高的系統(tǒng)性能,那么建議優(yōu)先記錄到文件。

2.發(fā)現(xiàn)問題(主動/被動)

問題點:數(shù)據(jù)庫查詢過程中速度過慢的SQL語句

主動:數(shù)據(jù)庫默認情況下slow_query_log的值為OFF,表示慢查詢日志是禁用的

mysql> show variables ?like '%slow_query_log%';
+---------------------+-----------------------------------------------+
| Variable_name ? ? ? | Value ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+---------------------+-----------------------------------------------+
| slow_query_log ? ? ?| OFF ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| slow_query_log_file | /home/WDPM/MysqlData/mysql/DB-Server-slow.log |
+---------------------+-----------------------------------------------+
2 rows in set (0.00 sec)
?
mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.09 sec)
?
mysql> show variables like '%slow_query_log%';
+---------------------+-----------------------------------------------+
| Variable_name ? ? ? | Value ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+---------------------+-----------------------------------------------+
| slow_query_log ? ? ?| ON ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|
| slow_query_log_file | /home/WDPM/MysqlData/mysql/DB-Server-slow.log |
+---------------------+-----------------------------------------------+
2 rows in set (0.00 sec)

被動:用戶在使用程序時候告知頁面反應慢

3.找到原因-對癥下藥

原因點:沒有加索引、索引失效、SQL極度復雜、高并發(fā)

1.表結構設計時沒有索引導致

2.SQL語句導致索引失效

索引失效7字口訣:

  • 模:模糊查詢LIKE以%開頭
  • 型:數(shù)據(jù)類型錯誤
  • 數(shù):對索引字段使用內部函數(shù)
  • 空:索引列是NULL
  • 運:索引列進行四則運算
  • 最:復合索引不按索引列最左開始查找
  • 快:全表查找預計比索引更快

3.SQL極度復雜10張以上表聯(lián)合查詢

  • 優(yōu)化表結構和程序

4.高并發(fā)時段導致等待

  • 在程序和數(shù)據(jù)庫之間加入緩存

Hole yor life get everything if you never give up.

到此這篇關于MySQL慢查詢優(yōu)化解決問題的文章就介紹到這了,更多相關MySQL慢查詢優(yōu)化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MYSQL 關于兩個經緯度之間的距離由近及遠排序

    MYSQL 關于兩個經緯度之間的距離由近及遠排序

    本篇文章是對MYSQL中關于兩個經緯度之間的距離由近及遠排序的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-07-07
  • MySQL數(shù)據(jù)誤刪除的快速解決方法(MySQL閃回工具)

    MySQL數(shù)據(jù)誤刪除的快速解決方法(MySQL閃回工具)

    Binlog2sql是一個Python開發(fā)開源的MySQL Binlog解析工具,能夠將Binlog解析為原始的SQL,也支持將Binlog解析為回滾的SQL,去除主鍵的INSERT SQL,是DBA和運維人員數(shù)據(jù)恢復好幫手,下面小編通過教程給大介紹MySQL數(shù)據(jù)誤刪除的快速解決方法,一起看看吧
    2019-10-10
  • 利用pt-heartbeat監(jiān)控MySQL的復制延遲詳解

    利用pt-heartbeat監(jiān)控MySQL的復制延遲詳解

    這篇文章主要給大家介紹了利用pt-heartbeat監(jiān)控MySQL的復制延遲的相關資料,文中詳細介紹了pt-heartbeat、監(jiān)控原理以及安裝過程等的相關內容,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • mySQL之關鍵字的執(zhí)行優(yōu)先級講解

    mySQL之關鍵字的執(zhí)行優(yōu)先級講解

    這篇文章主要介紹了mySQL之關鍵字的執(zhí)行優(yōu)先級講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • MySQL約束和事務知識點詳細歸納

    MySQL約束和事務知識點詳細歸納

    在關系型數(shù)據(jù)庫中,事務的重要性不言而喻,只要對數(shù)據(jù)庫稍有了解的人都知道事務,下面這篇文章主要給大家介紹了關于MySQL約束和事務知識點歸納的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • 淺析MySQL replace into 的用法

    淺析MySQL replace into 的用法

    在向表中插入數(shù)據(jù)的時候,經常遇到這樣的情況:1. 首先判斷數(shù)據(jù)是否存在; 2. 如果不存在,則插入;3.如果存在,則更新。
    2014-06-06
  • SQL更新與刪除數(shù)據(jù)操作示例詳解

    SQL更新與刪除數(shù)據(jù)操作示例詳解

    如果要在程序運行過程中操作數(shù)據(jù)庫中的數(shù)據(jù),那得先學會使用SQL語句,下面這篇文章主要給大家介紹了關于SQL查詢語句更新和刪除數(shù)據(jù)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • mysql 字符串正則表達式及說明

    mysql 字符串正則表達式及說明

    這篇文章主要介紹了mysql 字符串正則表達式及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • MySQL嵌套查詢實現(xiàn)子查詢的方法

    MySQL嵌套查詢實現(xiàn)子查詢的方法

    本文主要介紹了MySQL嵌套查詢實現(xiàn)子查詢的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • MySQL 創(chuàng)建索引(Create Index)的方法和語法結構及例子

    MySQL 創(chuàng)建索引(Create Index)的方法和語法結構及例子

    MySQL 創(chuàng)建索引(Create Index)的方法和語法結構及例子
    2009-07-07

最新評論