資料庫調優教程(一)前言 慢查詢定義

2021-06-30 16:31:27 字數 1315 閱讀 6319

前言

最近幫公司優化資料庫,憑著之前所學,一步一步地將學習知識用於實踐,總算是將速度蹭上去了,乙個原本要執行1分多鐘的查詢現在只需要3秒。

現把自己所學所思及所用加以總結,一方面為自己鞏固知識,另一方面也給廣大同學以一點點參考。

本套教程共十三講。

在這系列的教程中,你將會學到

1.     如何一步步地優化資料庫

2.     如何把索引的作用發揮的淋漓盡致

3.     如何解決mysql在like』%***%』模糊查詢的情況下不使用索引

4.     如何設計一張優質的表

5.     如何寫出高質量的sql語句

6.     資料庫優化的其他方法

首先,讓我們從發現慢查詢開始。

如何從乙個大專案中,迅速的定位執行速度慢的語句,這是本章節將要解決的問題。

1.      慢查詢的定義

怎樣的查詢才算是慢查詢,有沒有乙個量化的標準呢?

慢查詢定義

慢查詢是指執行時間超過慢查詢時間的sql語句。

檢視慢查詢時間的方法

[plain]view plain

copy

show variables like 'long_query_time';  

可以顯示當前慢查詢時間。mysql預設慢查詢時間為10秒

可以通過如下語句對慢查詢的定義進行修改

(如果你的mysql設定了快取,那麼需要重新進入命令列視窗才會查出變化)

需要注意的是,這個語句特意在變數前加上了global,表明這次的設定是對整個mysql有效的,而預設情況下變數前的修飾符是session(會話),也就是只對當前視窗有效。

這一講只是開個頭,下一講,我們會為慢查詢的發生準備資料,即建立一張大表。

資料庫調優教程 優化sql語句

上一章講了如何設計一張好的表,一張好的表自然需要好的sql語句去操作它。本章就來聊聊如何優化sql語句。1.sql語句優化原則 優化需要優化的query 定位優化物件效能瓶頸 從explain入手 盡可能在索引中完成排序 只取自己需要的column 盡可能避免複雜的join和子查詢 2.優化limi...

資料庫調優教程(七)索引的代價

4.索引的代價 前面幾講介紹了索引在提高效能方面的威力以及如何使用索引,但是索引也是有開銷的 1 占用磁碟空間 如前面所述,索引是有開銷的,表現在新增索引後.ibd檔案 innodb引擎 或者.myi檔案 myisam引擎 會變大。2 導致dml操作速度變慢 新增索引後之所以會快,是因為表依據索引對...

資料庫調優教程(十二) 優化sql語句

上一章講了如何設計一張好的表,一張好的表自然需要好的sql語句去操作它。本章就來聊聊如何優化sql語句。1.sql語句優化原則 優化需要優化的query 定位優化物件效能瓶頸 從explain入手 盡可能在索引中完成排序 只取自己需要的column 盡可能避免複雜的join和子查詢 2.優化limi...