使用MySQL複合索引加速慢查詢
讓我們首先了解什麼是複合索引:
複合索引是作用於多個列的索引。
它也稱為多列索引。
MySQL允許使用者建立最多包含16列的複合索引。
查詢最佳化器將複合索引用於測試索引中所有列的查詢。
它也可用於測試第一列、前兩列等情況的查詢。
如果在索引定義中以正確的順序指定列,則可以使用單個複合索引來加速對同一表上的某些型別查詢。
讓我們看看如何在建立表時建立複合索引。可以使用以下語句:
查詢
CREATE TABLE table_name ( c1 data_type PRIMARY KEY, c2 data_type, c3 data_type, c4 data_type, INDEX index_name (c2,c3,c4) );
在上述語句中,複合索引包含三列c2、c3和c4。
也可以使用“CREATE INDEX”語句將複合索引新增到現有表中。讓我們看看如何操作:
查詢
CREATE INDEX index_name ON table_name(c2,c3,c4);
讓我們看看如何使用複合索引加速慢查詢:
查詢執行速度取決於其持續時間。
使用索引提示可以提高查詢速度。
MySQL最佳化器可用於在選擇索引時做出正確的決策。
但這隻應在靜態查詢上進行。
如果添加了“WHERE”子句發生變化的查詢,則查詢的效能會下降,因為它不會讓最佳化器發揮作用。
“FORCE INDEX”語句的作用類似於“USE INDEX (index_list)”,此外,表掃描被認為是一項代價高昂的任務。
只有在無法使用命名索引查詢表中的行時,才需要表掃描。
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP