CREATE INDEX 索引名 ON 表(列);

原理

当没有索引时,mysql进行全表扫描,速度较慢。
底层建立二叉树,搜索很快

索引的代价

  1. 磁盘占用
  2. 如果对表进行dml操作(修改,删除,添加)会对索引进行维护,会影响效率

    索引的类型

  3. 主键索引,主键自动为主索引(类型Primary Key)

  4. 唯一索引(UNIQUE)
  5. 普通索引(INDEX)
  6. 全文索引(FULLTEXT)【适用于MyISAM】

一般开发不使用mysql自带的全文索引,而是使用:全文搜索Solr和ElasticSearch(ES)

添加唯一索引:
CREATE UNIQUE INDEX 索引名 ON 表(字段);
添加普通索引1:
CREATE INDEX 索引名 ON
添加普通索引方式2:
ALTER TABLE * ADD INDEX ();
添加主键索引:
ALTER TABLE *
ADD PRIMARY KEY ();
删除索引:
DROP INDEX *
ON *;
删除主键索引:
ALTER TABLE *
DROP PRIMARY KEY;
查询索引:
1 SHOW INDEX FROM :
2 SHOW INDEXES FROM
:
3 SHOW KEYS FROM *:

索引规则

  1. 较频繁的作为查询条件字段应该创建索引
  2. 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件
  3. 更新非常频繁的字段不适合创建索引
  4. 不会出现在WHERE子句中字段不该创建索引