mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。
索引其實和字典的目錄很相似,字典可以根據拼音和部首偏旁快速查詢到指定的字。
對於mysql資料庫來說,索引是乙個排序的列表,在這個列表中儲存著索引的值和包含這個值的資料所在行的實體地址,在資料十分龐大的時候,索引可以大大加快查詢的速度,這是因為使用索引後可以不用掃瞄全表來定位某行的資料,而是先通過索引表找到該行資料對應的實體地址然後訪問相應的資料。
索引的種類不止一種,它包括:主鍵、唯一索引、普通索引、全文索引、組合索引
①、主鍵:根據主鍵建立索引,不允許重複,不允許空值,乙個表可以沒有主鍵,但最多只能有乙個主鍵,主鍵可以為空字串
先建立乙個表:indextest2
建立主鍵:
alter
table indextest2 add
primary
key(name)
;
檢視建立的主鍵:
向表裡面插入資料,檢視查詢的時候是否使用了主鍵:
可以看到確實是用了主鍵。
②、唯一索引:用來建立索引的列的值必須是唯一的,允許空值
首先刪除indextest2表的主鍵:alter table indextest2 drop primary key;
然後建立唯一索引:
通過上圖可以得知唯一索引建立成功。
③、普通索引:用表中的普通列構建的索引,沒有任何限制
④、全文索引:用大文字物件的列構建的索引
建立全文索引:
alter
table indextest2 add fulltext index
(name)
;
⑤、組合索引:用多個列組合構建的索引,這多個列中的值不允許有空值
alter
table indextest2 add idnex (name,age,score)
;
組合索引遵循最左原則,先看下圖:
查詢操作並未使用索引,做如下解釋:
所謂最左原則:是把最常用作為檢索或排序的列放在最左,依次遞減,組合索引相當於建立了col1,col1col2,col1col2col3三個索引,而col2或者col3是不能使用索引的。
在使用組合索引的時候可能因為列名長度過長而導致索引的key太大,導致效率降低,在允許的情況下,可以只取col1和col2的前幾個字元作為索引
alter table 『table_name』 add index index_name(col1(4),col2(3));
表示使用col1的前4個字元和col2的前3個字元作為索引
Mysql基礎知識 索引
mysql 索引 1.索引的概念 索引是建立在表上的,對資料庫表中的一列或多列的值進行排序的一種結構。索引有2種儲存型別 b型樹索引 和 雜湊索引。innodb和myisam儲存引擎支援b型樹索引,memory儲存引擎支援雜湊索引。優點 提高檢索資料的速度。對於有依賴關係的子表和父表之間的聯合,可提...
索引基礎知識
sql server 2005 其他版本 0 共 1 對本文的評價是有幫助 評價此主題 索引是與表或檢視關聯的磁碟上結構,可以加快從表或檢視中檢索行的速度。索引包含由表或檢視中的一列或多列生成的鍵。這些鍵儲存在乙個結構 b 樹 中,使 sql server 可以快速有效地查詢與鍵值關聯的行。表或檢視...
索引基礎知識
1 快速取資料 2 保證資料記錄的唯一性 3 加快表的連線速度 4 在使用order by group by子句進行資料檢索時,利用索引可以減少排序和分組的時間。1 索引需要佔物理空間。2 當對表中的資料進行增加 刪除和修改的時候,索引也要動態的維護,降低了資料的維護速度。其實,索引的本質是乙個查詢...