Java学习-MySQL-索引
索引分类
索引(Index)是帮助MySQL高效获取数据的数据结构。
1.主键索引(Primary Key),唯一标识,不可重复,并且只能有一个字段可以作为主键。
2.唯一索引(Unique key),避免重复的行出现,可以重复。这里的可以重复不是指单个字段的多个行可以设置为相同的值,而是指表中的多个字段都可以设置为唯一索引,而一个表中只有一个字段可以设置为主键。被设置为唯一索引的字段,每个行的值不能相同,以此避免重复行的出现。
3.常规索引(Key/Index),默认的索引。
4.全文索引(FullText),快速定位数据。
索引的使用
法1.在创建表的时候给字段增加索引
法2.创建完毕后,增加索引
CREATE TABLE `person`(
`id` INT(3) NOT NULL,
`name` VARCHAR(20) ,
`sex` TINYINT(1) ,
`address` VARCHAR(20) ,
`height` INT(3) ,
`weight` INT(3) ,
`telphone` VARCHAR(20) ,
`email` VARCHAR(20) ,
PRIMARY KEY (`id`),
UNIQUE KEY (`telphone`),
UNIQUE KEY (`email`),
KEY (`address`)
)ENGINE=MYISAM DEFAULT CHARSET=utf8;
SHOW INDEX FROM `person`
添加索引
ALTER TABLE `school`.`person` ADD FULLTEXT INDEX (`name`)
SHOW INDEX FROM person
索引原则
1.索引不是越多越好
2.不要对经常变动的数据加索引
3.小数据量的表不需要加索引
4.索引一半加在常用来查询的字段上
索引的数据结构
Hash类型的索引
默认:B-tree