資料庫之索引

2021-10-03 02:28:23 字數 1555 閱讀 6781

索引我們分為四類來講 單列索引(普通索引,唯一索引,主鍵索引)、組合索引、全文索引、空間索引。

1.單列索引:乙個索引只包含單個列,但乙個表中可以有多個單列索引。 這裡不要搞混淆了。

mysql中基本索引型別,沒有什麼限制,允許在定義索引的列中插入重複值和空值,純粹為了查詢資料更快一點

索引列中的值必須是唯一的,但是允許為空值,

是一種特殊的唯一索引,不允許有空值。

1.2、組合索引

在表中的多個字段組合上建立的索引,只有在查詢條件中使用了這些欄位的左邊欄位時,索引才會被使用,

使用組合索引時遵循最左字首集合。

空間索引是對空間資料型別的字段建立的索引,mysql中的空間資料型別有四種,

geometry、point、linestring、polygon。

在建立空間索引時,使用spatial關鍵字。

要求,引擎為myisam,建立空間索引的列,必須將其宣告為not null。具體細節看下面

1).primary key(主鍵索引)

mysql>alter tabletable_nameadd primary key (column)

2).unique(唯一索引)

mysql>alter tabletable_nameadd unique (column)

3).index(普通索引)

mysql>alter tabletable_nameadd index index_name (column)

4).fulltext(全文索引)

mysql>alter tabletable_nameadd fulltext (column)

mysql>alter  table  `table_name`  add  index index_name (  `column1`,  `column2`,  `column3`  )
1):查詢條件**現聯合索引第一列,或者全部,則能利用聯合索引.

2):條件列中只要條件相連在一起,以本文例子來說就是:

last_name=』1′ and first_name=』1′

與first_name=』1′ and last_name=』1′

,無論前後,都會利用上聯合索引.

3):查詢條件中沒有出現聯合索引的第一列,而出現聯合索引的第二列,或者第三列,都不會利用聯合索引查詢.

1):只要條件列**現索引列,無論在什麼位置,都能利用索引查詢.

兩者的共同點:

1):要想利用索引,都要符合sarg標準.

2) :都是為了提高查詢速度.

3):都需要額外的系統開銷,磁碟空間.

索引:建立索引可以根據查詢業務的不同分為兩種:單一列的索引,聯合索引. 顧名思義,單一列索引就是指在表的某一列上建立索引,聯合索引是在多個列上聯合建立索引.

索引的使用範圍:單一列索引可以出現在where 條件中的任何位置,而聯合索引需要按一定的順序來寫.

資料庫之索引

1 索引的出現其實就是為了提高資料查詢的效率,就像書的目錄一樣。2 索引的出現是為了提高查詢效率,但是實現索引的方式卻有很多種,所以這裡也就引入了索引模 型的概念。可以用於提高讀寫效率的資料結構很多,這裡我先給你介紹三種常見 也比較簡單的 資料結構,它們分別是雜湊表 有序陣列和搜尋樹。2 雜湊表 假...

資料庫之 索引

資料庫為什麼要有索引?答 用於提高資料庫表的資料訪問速度。資料庫索引的資料結構基礎是b tree 多叉樹 b tree結構如下圖 ps 源自網路 索引是針對資料庫表中的某一列或多列建立的。建立索引 create index from tablename tableparam 建立多列索引 creat...

資料庫之索引

索引 基本概念 在資料庫中建立索引是為了加快資料的查詢速度。資料庫中的索引與書籍中的目錄類似。資料庫中的索引是乙個表中所包含的列值的列表,其中註明了表中包含各個值的行資料所在的儲存位置。可以為表中的單個列建立索引,也可以為一組列建立索引。索引一般採用b樹結構。索引由索引項組成,索引項由來自表中每一行...