唯一索引 unique
create unique index username ON test(user_name);
普通索引 noraml
create index password on test( password );
全文索引 fulltext
create fulltext index text on test(text);
组合索引
create index (索引名)username、password on (表名)test ((添加索引的字段)user_name, password)
Mysql各种索引区别:
普通索引(INDEX):最基本的索引,没有任何限制
唯一索引(UNIQUE):与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值。
主键索引(PRIMARY):它 是一种特殊的唯一索引,不允许有空值。
全文索引(FULLTEXT ):仅可用于 MyISAM 表, 用于在一篇文章中,检索文本信息的, 针对较大的数据,生成全文索引很耗时好空间。
组合索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。
索引设计原则
为数据量大,查询频繁的表建立索引
针对常作为查询条件、排序、分组操作的字段建立索引
尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高
尽量使用联合索引,减少单列索引,查询时,联合索引很多时候可以覆盖索引,节省存储空间,避免回表,提高查询效率
如果是字符串类型的字段,字段的长度较长,可以针对于字段的特点,建立前缀索引
如果索引列不能存储 NULL 值,在创建表时使用 NOT NULL 约束它