1. 程式人生 > >MySQL資料庫索引型別

MySQL資料庫索引型別

在資料量偏大的時候執行查詢語句查詢時間會變長,這時我們會根據需求在資料庫中新增索引來加快查詢效率。我們先來做個測試,不加索引和加索引下的效率對比。

在card_code列沒加索引的時,查詢時間如下,大概都在0.07秒。

 我們來加上索引試試,加上後查詢效率高了許多。

 下面來看看索引的型別:

1.Normal普通索引

普通索引也是我們最常用的索引,在使用時限制很少。比如上面為dm_person_info表 的card_code列新增名為card_code_index的索引。

ALTER TABLE `dm_person_info` ADD INDEX card_code_index ( `card_code` );

2.Unique唯一索引

唯一索引列的值必須唯一,允許有空值。如果是組合索引的話,列值的組合必須唯一。

ALTER TABLE `table_name` ADD UNIQUE INDEX index_name (`column`)

我試著給card_code列加唯一索引,card_code列值不唯一,加不上。

3.Full Text全文索引

可在多列column上新增聯合的全文索引,我們給居住地地址和戶籍地址這兩列加上索引。

注意: 舊版的MySQL的全文索引只能用在MyISAM表格的char、varchar和text的欄位上,MySQL5.6.24上InnoDB引擎也加入了全文索引,我的mysql版本是5.5的,所以InnoDB引擎的表格加不上全文索引,先修改為MyISAM。

ALTER TABLE `dm_person_info` ADD FULLTEXT INDEX  address_index (`jzd_dz`, `hjdz`);

查詢看看

select * from dm_person_info where MATCH (`jzd_dz`,`hjdz`) AGAINST ("shanghai anhui");

4.PRIMARY KEY主鍵索引

將一列設定為主鍵,即添加了主鍵索引,這個大家都瞭解,就不多介紹了。

ALTER TABLE `dm_person_info` ADD PRIMARY KEY (`rk_id`);