首要声明,该篇章是根据《MySQL45讲》根底上进行的思考和总结,不触及任何灌水抄袭。

mysql> select * from T where ID=10

这条sql总会走过下面这些流程,从上到下如变量类型有哪些

01  根底架构:一条SQL查询句子是怎么履行的?

课程总结篇

根据上图对各个组件进行功能上的概述

1.MySQL被分为Sever层存储引擎层

2.联接器:与客户端树立TCP联接后,验证身份、赋予权限

3.查询缓存:射中直接回来,对表更新,那么缓存失效,关于频频更改的表不适合翻开查询缓存。

4.剖析器:剖析sql关键字,以及拼写是否正确

5.优化器:优化sql,抉择走哪个索引

6.实施器:这儿会做接口crc错误计数权限判别。然后翻开表实施sql,实施进程如下(无索引情况)

​ a.调用 InnoDB 引擎接口接口类型取这个表的榜首行,判别值;遍历取;将成果封装成记载集回来

​ b.能够在慢查询日志中看到一个 rows_examined 的字段,标索引页是哪一页明这个句子实施进程中扫描接口的效果了多少行。

课后扩展篇

提问

  1. 查询缓存放在哪儿,怎样操控查询缓存区间大小?
  2. 怎样查看慢查询日志?
  3. 怎样给用户赋予权限?
  4. 优化sql怎样抉择走哪个索引?

回答


1.查询缓存放在哪儿,怎样操控查询缓存区间大小?

MySQL的查询缓存是完全存储在内存中.

查看mysql查询缓存参数show variables like '%query_cache%';

01  根底架构:一条SQL查询句子是怎么履行的?
(1) quemysql装置ry_cache_type标明缓存类型,OFF标明关闭查询缓存,ON标明翻开查询缓存DEMAND标明用户自定义查询缓存

(2变量与函数) query_cache_limit标明支撑的最大单条查询sql数接口自动化据量

(3)mysql怎么读 query_cache_m索引符号in_res_unit标明查询缓存最小单位

(4) query_cache_size标明查询缓缓存视频存空间大小

(5) query_cache_wlock_invalidate标明查询缓存是否支撑写锁,OFF标明不支撑,即读mysql装置配备教程取数据不考虑写锁,ON标明支撑,即读取数据会被写锁阻塞

查询缓存变量只能在my.ini文件中设置

01  根底架构:一条SQL查询句子是怎么履行的?


2.怎样查看慢查询日志?

慢查询日志:show variables like '%slow_query_l接口的效果og%';

01  根底架构:一条SQL查询句子是怎么履行的?
运用show variables like '%lonmysql数据库g变量_query_time%';在线查询参数mysql数据库命令大全选项配备值

运用set global slow_query_log=1;设置参数配备

重要的几个参数如下:

  • slow_query_log=1 #缓存是什么意思#标明是否翻开慢查询,1代表翻开
  • long_query_time=0.5
  • min_e变量的定义xam索引有哪几种类型ined_row_limit=100 ##关于查询变量扫描变量名的命名规矩行数小于此参数的SQL,将不会记载到慢查询日志中;
  • slow_接口文档query_log_file=/索引超出矩阵维度mysql/data/mysq接口和抽象类的差异l_slow.log

3.怎样给用户赋予权限?

创建用户:create user 用户名 identified by '暗码';

给用户分配权限:grant 权限 on 数据库.数据表 to '用户' @ '主机名';

​ a. grant all on *.* to ‘xiaogang’@’%’; ##给xiaogang 赋予悉数权限

​ b. grantmysql索引 select on temp.temp1 to ‘x索引符号iaogang’@’%’; ## 给xiaogang 赋予查询temp.temp1的权限。


4.优化sql怎样抉择走哪个索引?

​ 查询优化和地图导航的概念十分相似,我们一般只需要输入想要的成果(目缓存是什么意思的地),优化器担任找到最有用的结束办法(最佳路程)。

​ 优化器的mysql装置作业进程从语义上能够分为四个阶段:

a.逻辑转化:包括否定消除、等变量名的命名规矩值传递和常量传递、常量表达式求值、外联接转化为内联接、子查询转化、视图合并等;
b.优化准备,例如索引 ref 和 range 拜访办法剖析、查询条件扇出值(fan out,过滤后的记载数)剖析、常量表检测;
​ c.根据本钱优化,包括变量是什么意思拜访办法和联接次序的挑选等;
​ d.实施计划改进,例如表条件下推、拜访办法调整、排序避免以及索引条件接口和抽象类的差异下推。

实战演练

​ 翻开优化器跟踪:SET optimizer_trace="enabled=on";

TODOTODO 太深了索引优化!!!先空过。

aqi运用总结

--登入客户端
mysq索引是什么意思l -h$ip -P$port -u$user变量的指针其含义是指该变量的 -p
--查看联接
sho变量泵w processli变量类型有哪些st;
--将参数query_c索引页是哪一页ache_type设置为DEMAND,那么能够用 SQL_CACHE 显式指定运用查询缓存的句子
mysql> select SQL_CA缓存视频在手机哪里找CHEmysql数据库 * from T where ID=10--查看是否翻开慢查询日志
show variables like变量 '%slow_query_log%';