索引
就相当于对指定的列进行排序,排序有利于对该列的查询,可以大大增加查询效率。建立索引也是要消耗系统资源,所以索引会降低写操作的效率。 主键,唯一,联合、全文都属于索引。
唯一索引:可以一个表中可以有多个,而且允许为空,列中的值唯一;
**主键索引:
**属于唯一索引(是一种特殊的唯一索引,不能有空值),且一个表只能有一个主键,主键列不允许空值; **联合索引(组合索引)
**:多个字段的多条件查询多使用,为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。
全文索引:仅可用于 MyISAM 表,针对较大的数据,生成全文索引很耗时好空间。
理论讲完了,如果不举出些例子,相信你依然是蒙b的,那我们举例如下,让你彻底搞清楚他们之前的区别:
PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`column`)
INDEX(普通索引) ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
FULLTEXT(全文索引) ALTER TABLE `table_name` ADD FULLTEXT ( `column` )
组合索引 ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )