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`);

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章