MySQL索引
MySQL索引
索引的作用
提高数据库的性能(SELECT),查询速度可以提高百倍千倍
索引的原理
- 没有索引时,查找会进行全表扫描
- 添加索引,会形成一个索引的数据结构,比如二叉树
索引的代价:
1. 磁盘占用
2. 影响dml(update delete insert)语句的效率
索引的类型
-
主键索引(PRIMARY KEY)
-
唯一索引(UNIQUE)
-
普通索引(INDEX)
-
全文索引(FULLTEXT)
一般开发,不使用MySQL自带的全文索引,而是使用:全文搜索Solr和ElasticSearch(ES)全文索引框架
索引的使用
-
添加索引
-
方法1
CREATE [UNIQUE] INDEX index_name ON table_name (col_name) -
方法2
ALTER TABLE table_name ADD INDEX index_name (index_col_name) -
添加主键索引
ALTER TABLE table_name ADD PEIMARY KEY (col_name)
-
-
删除索引
-
方法1
DROP INDEX index_name ON table_name -
方法2
ALTER TABLE table_name DROP INDEX index_name -
删除主键索引
ALTER TABLE table_name DROP PRIMARY KEY
-
-
查询索引
-
方法1
SHOW INDEX/INDEXES FROM table_name -
方法2
SHOW KEYS FROM table_name -
方法3
DESC table_name
-
哪些列上适合用索引
1. 较频繁的作为查询条件的字段应该创建索引
2. 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件
3. 更新非常频繁的字段不适合创建索引
4. 不会出现在WHERE子句中的字段不该创建索引

浙公网安备 33010602011771号