索引语法
创建索引
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,并且查询测试数据。
网络异常,图片无法展示
|
name字段为姓名字段,该字段的值可能会重复,为该字段创建索引。
CREATE INDEX idx_user_name ON tb_user(name);
网络异常,图片无法展示
|
phone手机号字段的值,是非空,且唯一的,为该字段创建唯一索引。
CREATE UNIQUE INDEX idx_user_phone ON tb_user(phone);
网络异常,图片无法展示
|
为profession、age、status创建联合索引。
CREATE INDEX idx_user_pro_age_sta ON tb_user(profession,age,status);
网络异常,图片无法展示
|
为email建立合适的索引来提升查询效率。
CREATE INDEX idx_email ON tb_user(email);
网络异常,图片无法展示
|
完成上述的需求之后,我们再查看tb_user表的所有的索引数据。
show index from tb_user;
网络异常,图片无法展示
|
SQL性能分析
SQL执行频率
- MySQL 客户端连接成功后,通过
show [session|global] status
命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的INSERT、UPDATE、DELETE、SELECT的访问频次:
-- session 是查看当前会话 ; -- global 是查询全局数据 ; SHOW GLOBAL STATUS LIKE 'Com_______';
网络异常,图片无法展示
|
- Com_delete: 删除次数
- Com_insert: 插入次数
- Com_select: 查询次数
- Com_update: 更新次数
- 我们可以在当前数据库再执行几次查询操作,然后再次查看执行频次,看看 Com_select 参数会不会变化。