MySQL数据库-索引语法

1,265 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天点击查看活动详情

索引语法

创建索引

CREATE [ UNIQUE | FULLTEXT ] INDEX index_name ON table_name ( index_col_name,... ) ;

查看索引

SHOW INDEX FROM table_name ;

删除索引

DROP INDEX index_name ON table_name ;

案例演示:

  • 先来创建一张表 tb_user,并且查询测试数据。

QQ截图20221029220654.png

name字段为姓名字段,该字段的值可能会重复,为该字段创建索引。

CREATE INDEX idx_user_name ON tb_user(name);

QQ截图20221029220840.png

phone手机号字段的值,是非空,且唯一的,为该字段创建唯一索引。

CREATE UNIQUE INDEX idx_user_phone ON tb_user(phone);

QQ截图20221029220901.png

为profession、age、status创建联合索引。

CREATE INDEX idx_user_pro_age_sta ON tb_user(profession,age,status);

QQ截图20221029220918.png

为email建立合适的索引来提升查询效率。

CREATE INDEX idx_email ON tb_user(email);

QQ截图20221029220931.png

完成上述的需求之后,我们再查看tb_user表的所有的索引数据。

show index from tb_user;

QQ截图20221029220952.png

SQL性能分析

SQL执行频率

  • MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次:
-- session 是查看当前会话 ;
-- global 是查询全局数据 ;
SHOW GLOBAL STATUS LIKE 'Com_______';

QQ截图20221029221234.png

  1. Com_delete: 删除次数
  2. Com_insert: 插入次数
  3. Com_select: 查询次数
  4. Com_update: 更新次数
  • 我们可以在当前数据库再执行几次查询操作,然后再次查看执行频次,看看 Com_select 参数会不会变化。