獲取數(shù)據(jù)庫的實時狀態(tài)
mysql status;
正確使用索引
- 對整個表不使用索引直接去搜索相關的內容稱:全表索引枝笨;
- 對于like模糊匹配查詢并鸵,索引并不能起大多作用级零。盡量少使用like去查詢邮弹。
- 一次查詢對于一個數(shù)據(jù)表只能使用一個索引舀瓢,同個字段同時建立索引廷雅,多字段同時查詢并不能起疊加效果,這時候就要用到組合索引啦京髓。
-
explain
命令獲取 select 語句的執(zhí)行計劃航缀,通過 explain 我們可以知道以下信息:表的讀取順序,數(shù)據(jù)讀取操作的類型堰怨,哪些索引可以使用芥玉,哪些索引實際使用了,表之間的引用备图,每張表有多少行被優(yōu)化器查詢等信息灿巧。 - 能使用聯(lián)合索引的地方可以使用聯(lián)合索引
- 聯(lián)合索引,order by 揽涮,group by都遵循最左前綴查詢
- 根據(jù)慢查詢(需要在my.ini中配置相關設置)記錄查詢時間比較大的sql語句抠藕,并且優(yōu)化他。
- 索引會占用更大的磁盤空間绞吁,甚至比我們數(shù)據(jù)表還大幢痘。
- 鎖機制是影響數(shù)據(jù)庫查詢的一個重要原因。
- 適當使用行鎖家破,而不是鎖定整個表颜说。當然行鎖也有缺陷购岗,這不做 討論。
- 正確的使用查詢緩存门粪,也能提高mysql效率喊积。
- 反范式化設計。這個比較常用玄妈。比如一張門磁卡乾吻,用戶表,如果一個用戶一張卡拟蜻,那么就把用戶和卡寫到一個表里绎签。
- 放棄關系型數(shù)據(jù)庫。比如redis