MySQL-8. mysql索引

  • 说起提高数据库性能,索引是最物美价廉的东西了。不用加内存,不用改程序,不用调sql,查询速度就可能提高百倍干倍。
  • 索引本身会占用空间,以空间换时间。索引的代价:磁盘占用,影响DML语句效率(增删改),因为改动后要对索引进行维护,影响速度,但实际应用中,SELECT语句比DML多得多,所以代价可以容忍。
  • 创建索引后,只对创建了索引的列有效。
  • 索引为什么快?创建了一个数据结构,如二叉树、b树、b+树等。
  • 索引有四种:主键、唯一、普通、全文索引

索引的应用场景:

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

8.1 主键索引primary key

主键自动为主键索引,如果先建表,再指定索引:
ALTER TABLE t26 ADD PRIMARY KEY (id);

8.2 唯一索引unique

unique也自动为唯一索引,如果先建表,再指定索引:
-- 添加唯一索引
CREATE UNIQUE INDEX id_index ON table1 (id);

8.3 普通索引index

用的较多。
如果某列的值,是不会重复的,则优先考虑使用 unique 索引, 否则使用普通索引。
-- 添加普通索引方式 1
CREATE INDEX id_index ON table1 (id);

-- 添加普通索引方式 2
ALTER TABLE table1 ADD INDEX id_index (id)

8.4 全文索引fulltext

不好用,实际使用全文搜索solr和ElasticSearch(ES)。

8.5 删除索引

-- 删除索引
DROP INDEX id_index ON t25
-- 删除主键索引
ALTER TABLE t26 DROP PRIMARY KEY

8.6 修改索引

先删除,再添加新索引

8.7 查询索引

-- 1. 方式
SHOW INDEX FROM t25
-- 2. 方式
SHOW INDEXES FROM t25
-- 3. 方式
SHOW KEYS FROM t25
-- 4 方式
DESC t25

相关推荐

  1. MySQL-8. mysql索引

    2024-04-09 10:56:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-09 10:56:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-09 10:56:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-09 10:56:02       82 阅读
  4. Python语言-面向对象

    2024-04-09 10:56:02       91 阅读

热门阅读

  1. Factory模式是什么呀

    2024-04-09 10:56:02       34 阅读
  2. qt day2

    qt day2

    2024-04-09 10:56:02      37 阅读
  3. Linux文件和目录管理及文本搜索命令find grep

    2024-04-09 10:56:02       37 阅读
  4. 面试题:Jvm 的 synchronized 和 JDK 的 Lock

    2024-04-09 10:56:02       31 阅读
  5. WPF —— 平移变换动画实例

    2024-04-09 10:56:02       39 阅读
  6. 【WPF应用40】WPF 基本控件 - Border:详解与实例

    2024-04-09 10:56:02       41 阅读
  7. 代码示例:OpenSSL AES CBC 加密

    2024-04-09 10:56:02       31 阅读
  8. 【WPF应用41】WPF中的Expander控件详解

    2024-04-09 10:56:02       36 阅读