優化查詢
使用explain語句分析查詢語句
explain 用來分析 select 查詢語句,開發人員可以通過分析 explain 結果來優化查詢語句。
通過對查詢語句的分析,可以了解查詢語句的執**況,找出查詢語句執行的瓶頸,從而優化查詢語句.
使用索引查詢
mysql中提高效能的乙個最有效的方式就是對資料表設計合理的索引.
索引提供了高效訪問資料的方法,並且加快查詢速度.
如果查詢時沒有使用索引,那麼查詢語句將掃瞄表中所有的記錄.在資料量大的時候,這樣查詢速度會很慢.
使用索引進行查詢,查詢語句可以根據索引快速定位到待查詢記錄,從而減少查詢記錄數,達到提高查詢速度的目的.
幾種特殊情況(使用帶索引的字段查詢時,索引不起作用)
優化子查詢
子查詢雖然可以使查詢語句更靈活,但執行效率不高.因為mysql需要為內層查詢語句的查詢結果建立乙個臨時表.
可以使用連線查詢代替子查詢,連線查詢不需要建立臨時表,其速度比子查詢要快.
優化資料訪問
1.減少請求的資料量
2.減少伺服器端掃瞄的行數
最有效的方法是: 使用索引來覆蓋查詢;
重構查詢方式
1.切分大查詢
乙個大查詢如果一次性執行的話,可能一次鎖住很多資料,佔滿整個事務日誌,耗盡系統資源,阻塞很多小的但重要的查詢.
2.分解大連線查詢
將乙個大連線查詢分解成對每乙個表進行一次單錶查詢,然後在應用程式中進行關聯.
這樣做的好處有:
讓快取更高效. 對於連線查詢,如果其中乙個表發生變化,那麼整個查詢快取就無法使用了.而分解後的多個查詢,即使其中乙個表的查詢發生變化,那麼對於其他表的查詢快取依然可以使用.
分解成單錶查詢,這些單錶查詢的快取結果更可能被其他查詢使用到,從而減少冗餘記錄的查詢.
減少鎖競爭.
在應用層進行連線,可以更容易的對資料庫進行拆分,從而更容易做到高效能和可伸縮.
優化資料庫結構
1.將字段很多的表分解成多個表
對於欄位較多的表,如果有些欄位的使用頻率很低,可將這些字段分離出來形成了新錶.
當乙個表的資料量很大時,會由於使用頻率低的字段的存在而變慢.
2.增加中間表
對於經常需要聯合查詢的表,可以建立中間表以提高查詢效率.
3.優化插入記錄的速度
插入記錄時,影響插入速度的主要是索引,唯一性校驗,一次插入記錄條數等.根據這些情況可以分別進行優化.
優化mysql伺服器
1.優化伺服器硬體
針對性能瓶頸,提高硬體配置,可以提高資料庫的查詢和更新速度.
2.優化mysql引數
優化mysql引數可以提高資源利用率,從而提高伺服器效能.
mysql 優化策略 mysql的優化策略有哪些
第一 優化你的sql和索引 1.善用explain,看看自己寫的sql到底要涉及到多少表,多少行,使用了那些索引,根據這些資訊適當的建立索引 2.善用不同的儲存引擎,mysql有多種不同的儲存引擎,innodb,aria,memory根據需要給不同的表選擇不同的儲存引擎,比如要支援transacti...
查詢優化策略 索引
1 索引分為聚簇索引和非聚簇索引兩種,聚簇索引 是按照資料存放的物理位置為順序的,而非聚簇索引就不一樣了 聚簇索引能提高多行檢索的 速度,而非聚簇索引對於單行的檢索很快。2 建立索引的目的是加快對錶中記錄的查詢或排序。為表設定索引要付出代價的 一是增加了資料庫的儲存空間,二是在插入和修改資料時 要花...
查詢優化(MySQL優化查詢)
關聯查詢太多join 設計缺陷或不得已的需求 資料庫伺服器調優及各個引數設定不適當 緩衝 執行緒數等 慢查詢日誌 找出執行速度慢的sql語句 慢查詢的開啟並捕獲 explain 慢sql分析 show profile查詢sql在mysql伺服器裡面的執行細節和生命週期情況 sql資料庫伺服器的引數調...