索引我們分為四類來講 單列索引(普通索引,唯一索引,主鍵索引)、組合索引、全文索引、空間索引。
1.單列索引:乙個索引只包含單個列,但乙個表中可以有多個單列索引。 這裡不要搞混淆了。
mysql中基本索引型別,沒有什麼限制,允許在定義索引的列中插入重複值和空值,純粹為了查詢資料更快一點
索引列中的值必須是唯一的,但是允許為空值,
是一種特殊的唯一索引,不允許有空值。
1.2、組合索引
在表中的多個字段組合上建立的索引,只有在查詢條件中使用了這些欄位的左邊欄位時,索引才會被使用,
使用組合索引時遵循最左字首集合。
空間索引是對空間資料型別的字段建立的索引,mysql中的空間資料型別有四種,
geometry、point、linestring、polygon。
在建立空間索引時,使用spatial關鍵字。
要求,引擎為myisam,建立空間索引的列,必須將其宣告為not null。具體細節看下面
1).primary key(主鍵索引)
mysql>alter tabletable_name
add primary key (column
)
2).unique(唯一索引)
mysql>alter tabletable_name
add unique (column
)
3).index(普通索引)
mysql>alter tabletable_name
add index index_name (column
)
4).fulltext(全文索引)
mysql>alter tabletable_name
add 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樹結構。索引由索引項組成,索引項由來自表中每一行...