MYSQL索引区别
程序员文章站
2022-07-14 22:45:56
...
(1)PRIMARY:主键索引。索引列唯一且不能为空;一张表只能有一个主键索引(主键索引通常在建表的时候就指定) CREATE TABLE T_USER(ID INT NOT NULL,USERNAME VARCHAR(16) NOT NULL,PRIMARY KEY(ID)) (2)NORMAL:普通索引。索引列没有任何限制; 建表时指定 CREATE TABLE T_USER(ID INT NOT NULL,USERNAME VARCHAR(16) NOT NULL,INDEX USERNAME_INDEX(USERNAME(16))) //给列USERNAME建普通索引USERNAME_INDEX ALTER语句指定 ALTER TABLE T_USER ADD INDEX U_INDEX (USERNAME) //给列USERNAME建普通索引 U_INDEX 删除索引 DROP INDEX U_INDEX ON t_user //删除表t_user中的索引U_INDEX (3)UNIQUE:唯一索引。索引列的值必须是唯一的,但允许有空; 建表时指定 CREATE TABLE t_user(ID INT NOT NULL,USERNAME VARCHAR(16) NOT NULL,UNIQUE U_INDEX(USERNAME)) //给列USERNAME添加唯一索引T_USER ALTER语句指定 ALTER TABLE t_user ADD UNIQUE u_index(USERNAME) //给列T_USER添加唯一索引u_index 删除索引 DROP INDEX U_INDEX ON t_user (4)FULLTEXT:全文搜索的索引。FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。索引的新建和删除和上面一致,这里不再列举... 组合索引(复合索引)