MySQL - 索引

索引(index)是帮助数据库高效获取数据的数据结果。

优点:

  • 提高数据查询的效率,降低数据库的IO成本
  • 通过索引列对数据进行排序,降低数据排序的成本,降低CPU消耗

缺点:

  • 索引会占用存储空间
  • 索引大大提高了查询效率,但同时也降低了insertupdatedelete的效率

MySQL数据库支持的索引结构有很多,如:Hash索引、B+Tree索引、Full-Text索引等。平常所说的索引默认是B+Tree结构组织的索引。

语法

  • 创建索引

    sql 复制代码
    create [unique] index 索引名 on 表名(字段名...);
  • 查看索引

    sql 复制代码
    show index from 表名;
  • 删除索引

    sql 复制代码
    drop index 索引名 on 表名;
sql 复制代码
-- 创建:为tb_emp表的name字段建立一个索引
create index idx_emp_name on tb_emp(name);

-- 查询:查询 tb_emp 表的索引信息
show index from tb_emp;

-- 删除:删除 tb_emp 表中name字段的索引
drop index idx_emp_name on tb_emp;

show index from tb_emp;
  • 主键字段在建表时会自动创建主键索引
  • 添加唯一约束时,数据库实际上会添加唯一索引
相关推荐
不太可爱的大白几秒前
Mysql:分库分表
数据库·mysql
四季豆豆豆2 分钟前
博客项目 laravel vue mysql 第四章 分类功能
vue.js·mysql·laravel
十五年专注C++开发39 分钟前
hiredis: 一个轻量级、高性能的 C 语言 Redis 客户端库
开发语言·数据库·c++·redis·缓存
憨堡包^—^1 小时前
Docker —— MySQL主从复制集群
mysql·docker·容器
bianguanyue2 小时前
SQLite密码修改故障排查:RSA加密随机性导致的数据库匹配问题
数据库·sqlite·c#
亚马逊云开发者2 小时前
将 Go 应用从 x86 平台迁移至 Amazon Graviton:场景剖析与最佳实践
linux·数据库·golang
凉拌青瓜哈2 小时前
DVWA-LOW级-SQL手工注入漏洞测试(MySQL数据库)+sqlmap自动化注入-小白必看(超详细)
mysql·安全·网络安全
张先shen3 小时前
亿级流量下的缓存架构设计:Redis+Caffeine多级缓存实战
数据库·redis·缓存
二楼后座。3 小时前
Golang操作MySQL json字段优雅写法
mysql·golang·json
~ 小团子3 小时前
每日一SQL 【各赛事的用户注册率】
数据库·sql