mySql的優化(個人筆記)

2021-10-04 04:05:55 字數 887 閱讀 4546

mysql的基本優化都是從索引和sql語句入手。

1.對查詢進行優化,應盡量避免全表掃瞄,比如:

(1)聯合索引(b,c,d)主鍵為a,那麼查詢資料如果出現其他字段。比如e,那麼就不會走索引,直接走全表掃瞄,因為走索引還需要回表。如果查詢條件為b=1,走索引。如果為c=1,d=1,是不會走索引的。所以確定聯合索引的順序是很有考量的。

(2)盡量避免使用select * 查詢,根據業務需求,精確返回字段。

(3)where 後面的篩選條件更加精確,避免返回大量無用資料。

(4)應盡量避免在 where 子句中對字段進行表示式或函式操作,這將導致引擎放棄使用索引而進行全表掃瞄。如:

select id from t where num/2=100

應改為:

select id from t where num=100*2

(5)對傳入的資料進行型別判斷,特別是數字型a,賦予a = 『bcc』,只要右邊的字元不是數字,都會轉換為數字0。

2.對索引進行優化

(1)對於查詢較多的字段,建立索引。插入較多的資料不適合建立索引,因為建立乙個索引就要建立一顆b+樹,b+樹的插入效率低,查詢效率高。

(2)不要盲目建立索引,索引太多,生成的b+樹多,下面的子節點占用的空間也大

3.對建表優化

(1)盡量使用數字型字段,若只含數值資訊的字段盡量不要設計為字元型,這會降低查詢和連線的效能,並會增加儲存開銷。這是因為引擎在處理查詢和連線時會逐個比較字串中每乙個字元,而對於數字型而言只需要比較一次就夠了。

(2)盡量用varchar代替char,節省欄位的儲存空間。而且,在把該字段建立為索引的時候,由於占用空間小,那麼每頁16k的容量,儲存的資料行數就多,加快查詢速度。

4.對資料庫優化

(1)選取合適的事務隔離級別;

簡單mysql 個人的優化查詢

簡單提高mysql查詢速度幾點 1 mysql查詢 返回結果,用具體欄位來表示 select from a select a.id a.name from a 2 查詢使用函式時,篩選適合的函式,那我自己這次遇到的,between and比 符號 要查的快些,另外當較多使用between時可以考慮用...

MySQL慢優化個人記錄

該文章記錄個人工作或者學習中經歷的mysql優化,該文章不做定時更新 1.1背景 用mysql儲存了一些不太更新的資料,且資料量不大,所以用到了一些join及子查詢 但是在開發階段也發現慢sql,但表資料量不足5k。in 接子查詢是非常容易引發慢sql的,調優也比較難定位,一般這種推薦寫成兩個sql...

mysql優化筆記

首先檢視sql執行計畫,確定執行過程是否用到索引,是否全表掃瞄等 例 explain select from servers1 子查詢,in 和 exists的區別 in主要先執行內查詢後與外表比較,exists先查詢外表後與內錶比較判斷是否滿足條件,具體查詢效率取決於查詢條件內錶資料與外表資料大小...