数据库索引的概念和分类
什么是數據庫索引?
我們再平時的開發中免不了用到數據庫的索引,接下來就簡單說一下數據庫索引。
數據庫索引用來干什么?
數據庫索引就是為了提高數據的查詢速率。
數據庫索引有哪些?
索引的底層是?
數據庫索引的底層是B+樹。
B+樹的中間元素不儲存數據,只儲存索引,數據存儲在B+樹的葉子節點處,一個節點可以存放多個數據,查找一個節點的時候可以有多個元素,大大提升查找效率,這就是為什么數據庫索引用的就是B+樹,因為索引很大,不可能都放在內存中,所以通常是以索引文件的形式放在磁盤上,所以當查找數據的時候就會有磁盤I/O的消耗,而B+樹正可以解決這種問題,減少與磁盤的交互,因為進行一次I/O操作可以得到很多數據,增大查找數據的命中率。
索引在磁盤上的存儲是怎樣的?
索引在磁盤上聚集存儲和非聚集存儲的方式是不同的。
索引的分類
數據庫索引分為:
1. 主鍵索引(PRIMAY KEY)
某一個屬性組能唯一標識一條記錄
例如:員工表(員工編號,姓名,性別,部門等等),員工編號唯一標識,可以作為主鍵。
主鍵索引是最常見的索引類型,它能確保數據記錄的唯一性,確定特定數據記錄在數據庫中的位置。
實例:
唯一索引(UNIQUE)
避免同一個表中某數據列中的值重復。
與主鍵索引的區別:主鍵索引只能有一個,唯一索引可有多個。
實例:
常規索引(INDEX)
快速定位特定數據
index 和 key 關鍵字都可以設置常規索引,應加在查詢條件的字段,不易添加太多常規索引,影響數據的插入,刪除和修改操作。
實例:
創建表時添加
CREATE TABLE `result`{//...INDEX / KEY `ind` (`studentNo`,`subjectNo`) }創建后追加
ALTER TABLE `result` ADD INDEX `ind` (`studentNo`,`subjectNo`);全文索引(FULLTEXT)
快速定位特定數據
只能用于MyISAM類型的數據表;只能用于CHAR ,VARCHAR,TEXT數據列類型;使用大型數據集。
總結
以上是生活随笔為你收集整理的数据库索引的概念和分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: canvas实现动态小球碰撞
- 下一篇: 句柄数是什么