mysql和oracle的索引类型
**
索引
mysql索引:
**
單列索引(普通索引,唯一索引,主鍵索引)、組合索引、全文索引、空間索引
(1)單列索引:一個索引只包含單個列,但一個表中可以有多個單列索引。
(2)普通索引:MySQL中基本索引類型,沒有什么限制,允許在定義索引的列中插入重復值和空值,純粹為了查詢數據更快一點。
(3)唯一索引:索引列中的值必須是唯一的,但是允許為空值。
(4) 主鍵索引:是一種特殊的唯一索引,不允許有空值。
(5)組合索引:在表中的多個字段組合上創建的索引,只有在查詢條件中使用了這些字段的左邊字段時,索引才會被使用,使用組合索引時遵循最左前綴集合。
(6)全文索引,只有在MyISAM引擎上才能使用,只能CHAR,VARCHAR,TEXT類型字段上使用全文索引,介紹了要求,說說什么是全文索引,就是在一堆文字中,通過其中的某個關鍵字等,就能找到該字段所屬的記錄行,比如有"你是個小可愛,二貨 …" 通過小可愛,可能就可以找到該條記錄。主要針對模糊查詢
(7)空間索引:空間索引是對空間數據類型的字段建立的索引,MySQL中的空間數據類型有四種,GEOMETRY、POINT、LINESTRING、POLYGON。在創建空間索引時,使用SPATIAL關鍵字。要求,引擎為MyISAM,創建空間索引的列,必須將其聲明為NOT NULL。
oracle索引
(1)唯一索引: 唯一索引確保在定義索引的列中沒有重復值, Oracle 自動在表的主鍵列上創建唯一索引
(2)組合索引: 組合索引是在表的多個列上創建的索引,索引中列的順序是任意的, 如果 SQL 語句的 WHERE 子句中引用了組合索引的所有列或大多數列,則可以提高檢索速度
語法:create index index_name on table_name (column_name1,column_name2); 具體列值:該表中的元組由兩列共同確定一行,例如班級號 學號 唯一確定一個學生。(3)反向鍵索引:
反向鍵索引反轉索引列鍵值的每個字節,為了實現索引的均勻分配,避免b樹不平衡,通常建立在值是連續增長的列上,使數據均勻地分布在整個索引上,創建索引時使用REVERSE關鍵字
(4)位圖索引:
位圖索引適合創建在低基數列上
位圖索引不直接存儲ROWID,而是存儲字節位到ROWID的映射
節省空間占用
如果索引列被經常更新的話,不適合建立位圖索引
總體來說,位圖索引適合于數據倉庫中,不適合OLTP中
(5)基于函數的索引:
基于一個或多個列上的函數或表達式創建的索引
表達式中不能出現聚合函數
不能在LOB類型的列上創建
總結
以上是生活随笔為你收集整理的mysql和oracle的索引类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab划分训练集验证和测试集代码_
- 下一篇: 格拉布斯离群值检验——理论与 Pytho