mysql由於他的開源以及存儲引擎的優點,已經收到了衆多開發人員的喜愛,所以在面試過程中,mysql調優也是面試提問機率非常高的,這篇文章就讓我們來聊聊mysql調優都有哪幾種方式。
1、存儲引擎:
首先,我們可以選擇適合的存儲引擎,例如比較重要的,需要支持事務的,我們可以使用innoDB,存儲登陸日誌之類的,我們可以使用ARCHIVE,如果單純的只是讀多或者寫多的,我們可以使用myIsam。
2、索引:
我們需要建立高效的數據庫索引,索引並不是越多越好,在我們選擇建立索引的時候,所選擇的字段,需要儘可能的不一致,同時字段需要選擇經常作爲查詢條件的存在,索引列的字段長度也不要選擇太長的。
對於聯合索引,需要記住最左匹配原則。所以我們在創建聯合索引要按照優先級進行排序。
我們也可以選擇不同的索引類型,但是對於這個我掌握的比較薄弱,所以就不提用哪幾種了
3、sql語句:
對於sql語句,其實是效率並不是特別高,因爲我們的數據庫底層都是有自己的優化措施的,但是有的點確實需要我們注意;
對於模糊查詢來說,如果是索引列,使用'%name'就會使用全表查詢,但是使用‘name%’,我們還能正常享受索引的快捷的
如果連接查詢,善用EXISTS和IN,如果是exists,那麼以外層表爲驅動表,先被訪問,如果是IN,那麼先執行子查詢。所以IN適合於外表大而內表小的情況;EXISTS適合於外表小而內表大的情況。
在where中避免在左側使用表達式(age*2=36),避免使用 != 或者 <>,避免使用對字段進行null判斷。