MySQL学习笔记--索引的使用

MySQL学习笔记六
MySQL的日志类型
在这里插入图片描述
##慢查询日志
慢查询日志用于记录MySQL数据库中响应时间超过指定阈值的语句。慢查询日志通常也被称之为慢日志,因为它不仅仅只针对SELECT语句,像INSERT、UPDATE、DELETE等语句,只要响应时间超过所设定阈值都会记录在慢查询日志中。
在这里插入图片描述
查看是否开启慢查询日志

show variables like '%slow%';

查看阈值

show variables like '%long%';

临时开启慢查询日志

set global slow_query_log='ON';
set long_query_time=1;

慢查询日志文件所在位置

select variables like '% datadir%';

##查询分析器EXPLAIN
explain命令可以查看SQL语句的执行计划。当explain与SQL语句一起使用时,MySQL将显示来自优化器的有关语句执行计划的信息。也就是说,MySQL解释了它将如何处理语句,包括有关如何联接表以及以何种顺序联接表的信息。
explain的使用很简单,只需要在SQL语句之前加上explain命令即可除select语句外,explain也能分析insert、update和delete语句。
explain结果解析
在这里插入图片描述
##索引的基本使用
1、创建索引
创建普通索引

CREATE INDEX indexName ON tableName(columnName(length));

创建唯一索引

CREATE UNIQUE INDEX indexName ON tableName(columnName(length));

创建复合索引

CREATE INDEX indexName ON tableName(columnName1, columnName2,);

2、删除索引

DROP INDEX [indexName] ON tableName;

3、查看索引

SHOW INDEX FROM tableName;

##覆盖索引
覆盖索引又称之为索引覆盖,即select的数据列只从索引中就能得到,不必读取数据行,也就是只需扫描索引就可以得到查询结果。
关于覆盖索引的几点说明:

  1. 使用覆盖索引,只需要从索引中就能检索到需要的数据,而不要再扫描数据表;
  2. 索引的体量往往要比数据表小很多,因此只读取索引速度会非常快,也会极大减少数据访问量;
  3. MySQL的查询优化器会在执行查询前判断,是否有一个索引可以覆盖所有的查询列;
  4. 并非所有类型的索引都可以作为覆盖索引,覆盖索引必须要存储索引列的值。像哈希索引、空间索引、全文索引等并不会真正存储索引列的值

如何判断使用了覆盖索引
当一个查询使用了覆盖索引,在查询分析器EXPLAINExtra列可以看到“Using index

课程:CSDN《MySQL数据库从入门到实战应用》刘运强

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值