1.
query_cache_type=0 :默认,表示查询缓存功能关闭
query_cache_type=1 :表示查询缓存功能开启
query_cache_type=2 :表示查询缓存功能按需使用
// 使用查询缓存功能
SELECT SQL_CACHE * FROM t_user WHERE id=5;
// 不使用查询缓存功能
SELECT SQL_NO_CACHE * FROM t_user WHERE id=5;
你输入的是由多个字符串和空格组成的一条 SQL 语句,MySQL 需要识别出里面 的字符串分别是什么,代表什么。
根据语法规则,判断你输 入的这个 SQL 语句是否 满足 MySQL 语法 。如果语法正确,就会生成语法树。
经过解析器后,MySQL知道了要做什么,但是可以有多种执行方法,故在执行之前,还需要经过优化器的处理,找到其中最好的执行计划。
通过索引和表连接等技术进行优化
在SQL语句的写法上进行更改,从而提高执行效率
如果没有权限就不执行,如果有权限,就根据表的引擎定义,调用相关的存储引擎API
存储引擎API只是一个抽象接口,下面还有一个存储引擎层。
设置profiling的值
select @@profiling;
show variables like '%profiling%';
set @@profiling = 1;
查看SQL执行过程
show profiles;
show profile for query 5;