不管在工做中,仍是在面試當中,數據庫優化是一個避不開的技術點,關於數據庫的優化,有以下幾點:面試
(1)優化表結構,對經常使用的字段和很是用的字段分開存儲;數據庫
(2)優化SQL,合理使用索引;緩存
(3)作數據庫讀寫分離,減小IO壓力,因爲數據庫對記錄作了持久化至磁盤,對磁盤的IO是很是消耗性能的;函數
(4)使用緩存技術,不讓全部的數據請求都打到數據庫上;性能
(5)對業務作垂直拆分,減小耦合度;優化
(6)對標作水平拆分,這一步是比較複雜,要注意主鍵生成原則和請求路由規則。索引
通常能夠經過Explain查詢檢索的Rows的記錄量來衡量查詢速度;路由
可是把索引創建在有大量重複數據的字段上,並不能有效地提高SQL效率;字符串
發現沒有用到索引,這是對索引列使用like的限制,要對索引列使用like,通配符只能在結尾,開頭不能夠有任何的通配符;效率
在索引列上使用MySQL函數也會致使索引失效
(1)使用LIKE關鍵字的查詢語句
在使用LIKE關鍵字進行查詢的查詢語句中,若是匹配字符串的第一個字符爲"%",索引不會起做用,只有"%"不在第一個位置,索引纔會起做用
(2)使用多列索引的查詢語句
MySQL能夠爲多個字段建立索引,一個索引能夠包含16個字段,對於多列索引,只有查詢條件中使用了這些字段中第一個字段時,索引纔會被使用
(3)使用OR關鍵字的查詢語句
查詢語句的查詢條件中只有OR關鍵字,且OR先後兩個條件都是索引時,查詢纔會使用索引,不然,查詢將不使用索引