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的数据列只从索引中就能得到,不必读取数据行,也就是只需扫描索引就可以得到查询结果。
关于覆盖索引的几点说明:
如何判断使用了覆盖索引
当一个查询使用了覆盖索引,在查询分析器EXPLAIN的Extra列可以看到“Using index”
课程:CSDN《MySQL数据库从入门到实战应用》刘运强