索引是一個模式對象,其中包含每個值的條目,該條目出現在表或集群的索引列中,並提供對行的直接快速訪問。 創建一個索引: create index 索引名 on 表名 (欄位名); 刪除索引: drop index 索引名 建立索引的目的就是為了加快查詢速度,建立索引後會使DML操作效率慢,但是對用戶查 ...
索引是一個模式對象,其中包含每個值的條目,該條目出現在表或集群的索引列中,並提供對行的直接快速訪問。
創建一個索引: create index 索引名 on 表名 (欄位名);
刪除索引: drop index 索引名
建立索引的目的就是為了加快查詢速度,建立索引後會使DML操作效率慢,但是對用戶查詢會提高效率。刪除一個表時,相對應的索引也會刪除。另外,索引是會進行排序。
創建索引就是為了減少物理讀,索引會減少掃描的時間。在經常要用到where的子句的欄位,應該使用索引,另外還要看所查詢的數據與全部數據的百分比,表越大,查詢的記錄越少,索引的效率就越高.;
舉例:
CREATE INDEX upper_ix ON employees (UPPER(last_name));
使用:
SELECT first_name, last_name FROM employees WHERE UPPER(last_name) IS NOT NULL ORDER BY UPPER(last_name);
為了增加Oracle資料庫使用索引而不是執行全表掃描的可能性,請確保函數在後續查詢中返回的值不為空。如果沒有WHERE子句,Oracle資料庫可能會執行全表掃描。
註意事項:
WHERE之後的欄位條件,需與索引一致,否則可能失效。
如: CREATE INDEX ix_birth mployees (birthday);
查詢語句: select birthday from mployees where to_char(birthday,'YYYY-MM')='2018-01';
結果:索引沒有效果