索引是用於加速數據存取的數據對象,合理使用索引可以大大降低I/O次數,從而提高數據訪問性能。
爲什麼添加了索引後,會加快查詢速度呢?
單列索引:
單列索引是基於單個列所建立的索引,例如:
創建單列索引:
sql> create index index_name on table_name(field_name);
複合索引:
是指基於兩列或者多列建立的索引,在用一張表上可以有多個索引,但要求列的組合必須不同。例如:
sql> create index index_name on table_name(field_name1,field_name2); sql> create index index_name on table_name(field_name2,field_name1);
根據數據的存儲方式可以分爲B*樹索引、位圖索引、反向索引。
索引使用原則:
1.在大表上建立索引纔有意義。
2.在where子句或是連接條件上經常使用的列建立索引。
3.索引的層次不要超過4層。
索引的缺點分析:
1.建立索引,系統大概需要使用表的1.2倍的硬盤和內存空間存儲索引。
2.更新數據時,系統需要額外的時間來更新索引,以保持索引和表的一致性。
實踐表明,不適當的索引會降低系統性能。