MySQL索引

MySQL索引

索引的作用

提高数据库的性能(SELECT),查询速度可以提高百倍千倍

索引的原理

  • 没有索引时,查找会进行全表扫描
  • 添加索引,会形成一个索引的数据结构,比如二叉树

索引的代价:

1. 磁盘占用
2. 影响dml(update delete insert)语句的效率

索引的类型

  1. 主键索引(PRIMARY KEY)

  2. 唯一索引(UNIQUE)

  3. 普通索引(INDEX)

  4. 全文索引(FULLTEXT)

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

索引的使用

  1. 添加索引

    • 方法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)

  2. 删除索引

    • 方法1

      DROP INDEX index_name ON table_name

    • 方法2

      ALTER TABLE table_name DROP INDEX index_name

    • 删除主键索引

      ALTER TABLE table_name DROP PRIMARY KEY

  3. 查询索引

    • 方法1

      SHOW INDEX/INDEXES FROM table_name

    • 方法2

      SHOW KEYS FROM table_name

    • 方法3

      DESC table_name

哪些列上适合用索引

1. 较频繁的作为查询条件的字段应该创建索引
2. 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件
3. 更新非常频繁的字段不适合创建索引
4. 不会出现在WHERE子句中的字段不该创建索引
posted @ 2021-11-16 21:28  小垃圾在努力!  阅读(52)  评论(0)    收藏  举报