mysql查看表索引信息 在mysql中,什么情況下使用全表掃描要比使用索引快?
在mysql中,什么情況下使用全表掃描要比使用索引快?此問題大致可分為兩種情況:1只能使用索引返回查詢結果的查詢,如聚合查詢中的count、Max、min函數。2. 當查詢結果中的記錄數小于表中記錄數
在mysql中,什么情況下使用全表掃描要比使用索引快?
此問題大致可分為兩種情況:
1只能使用索引返回查詢結果的查詢,如聚合查詢中的count、Max、min函數。
2. 當查詢結果中的記錄數小于表中記錄數的一定比例時。這主要是因為索引中的指針用于在索引掃描后逐個訪問記錄。假設每個記錄都是通過索引訪問的,則讀取磁盤的次數就是查詢T的記錄數。如果掃描表,則讀取磁盤的次數就是存儲記錄B的塊數。如果T>B,則索引沒有優(yōu)勢。對于大多數數據庫,這個比率是10%(Oracle、PostgreSQL等),也就是說,首先估計結果的數量。如果小于此比率,請使用索引。如果大于此比率,則直接掃描表格。