暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL每日答题记录

原创 Root__Liu 2023-05-26
204

1、关于 MySQL 服务器,以下说法错误的是: B

A、MySQL 可以运行在 FreeBSD、Linux或Windows系统。 

B、MySQL 的服务器和客户端必须运行在不同的计算机上。 

C、MySQL 允许为不同用户指定不同的资源组。 

D、MySQL 可以设置监听端口、地址和最大连接数。



2、MYSQL获取SQL的执行计划有哪些方式? ABD

A、desc + sql 语句

B、首先通过show processlist;获取线程ID;之后使用 EXPLAIN FOR CONNECTION 线程ID;获取执行计划。

C、explain plan for + sql 语句

D、explain + sql 语句


可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。

官网地址: https://dev.mysql.com/doc/refman/5.5/en/explain-output.html

MySql提供了EXPLAIN语法用来进行查询分析,在SQL语句前加一个”EXPLAIN”即可。

默认情况下Mysql的profiling是关闭的,所以首先必须打开profiling
set profiling=“ON”
mysql> show variables like “%profi%”;

---mysql 查看执行计划
1. MySQL可以使用explain 或 DESC预估的执行计划。
2. 对于正在执行的SQL语句,可以首先获取线程ID, 通过show processlist;
或者select * from information_schema.PROCESSLIST where info is not null order by time desc ;
之后通过EXPLAIN FOR CONNECTION 线程ID获取正在执行的执行计划。

1、执行计划中包含的信息


select查询的序列号,包含一组数字,表示查询中执行select子句或者操作表的顺序
id号分为三种情况:
1、如果id相同,那么执行顺序从上到下
explain select * from emp e join dept d on e.deptno = d.deptno join salgrade sg on e.sal between sg.losal and sg.hisal;

 2、如果id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行
explain select * from emp e where e.deptno in (select d.deptno from dept d where d.dname = 'SALES');

3、id相同和不同的,同时存在:相同的可以认为是一组,从上往下顺序执行,在所有组中,id值越大,优先级越高,越先执行
explain select * from emp e join dept d on e.deptno = d.deptno join salgrade sg on e.sal between sg.losal and sg.hisal where e.deptno in (select d.deptno from dept d where d.dname = 'SALES');

主要用来分辨查询的类型,是普通查询还是联合查询还是子查询



「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论