Mysql
文章平均质量分 58
习题集
天天向上的菜鸡杰!!
生活明朗 万物可爱 人间值得 全力以赴
展开
-
Explain各个字段的含义
如果是单列索引,那就整个索引长度算进去,如果是多列索引,那么查询不一定都能使用到所有的列,用多少算多少。留意下这个列的值,算一下你的多列索引总长度就知道有没有使用到所有的列了。如果是使用的常数等值查询,这里会显示const,如果是连接查询,被驱动表的执行计划这里会显示驱动表的关联字段,如果是条件使用了表达式或者函数,或者条件列发生了内部隐式转换,这里可能显示为func。除了all之外,其他的type都可以使用到索引,除了index_merge之外,其他的type只可以用到一个索引。查询真正使用到的索引。原创 2022-10-18 18:27:42 · 755 阅读 · 0 评论 -
Sql优化(详解一条龙服务)
这个过程在mysql8.0已经取消了 为甚取消了呢 因为在我们读写操作比较多的时候 这个缓存需要频繁的更新 那么我们还没有用到这个缓存 他就已经更新了。任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。所有第一步我们需要先定位出 查询比较慢的sql 然后的话 我们将其单拎出来 进行优化。在这里的话 ,如果我们的sql又臭又长的话 那么肯定是解析的比较慢的。那么我们应该 回顾一下 我们的sql select历程。这个阶段是没有什么可优化的。原创 2022-10-17 11:56:49 · 1698 阅读 · 0 评论 -
面试官必问值Mysql索引篇(妈妈再也不用担心 我不会索引了)
一种帮助mysql提高效率的数据结构。B+树B+Tree是在B-Tree(B树的)基础上的一种优化,使其更适合实现外存储索引结构,InnoDB存储引擎就是用B+Tree实现其索引结构。B-Tree结构图中可以看到每个节点中不仅包含数据的key值,还有data值。而每一个页的存储空间是有限的,如果data数据较大时将会导致每个节点(即一个页)能存储的key的数量很小,当存储的数据量很大时同样会导致B-Tree的深度较大,增大查询时的磁盘I/O次数,进而影响查询效率。原创 2022-10-03 16:36:40 · 1251 阅读 · 0 评论 -
面试官:请问一条select的语句的执行会发生什么?
经历完优化器后,就确定了执行方案,接下来 MySQL 就真正开始执行语句了,这个工作是由「执行器」完成的。在执行的过程中,执行器就会和存储引擎交互了,交互是以记录为单位的。根据执行计划执行 SQL 查询语句,从存储引擎读取记录,返回给客户端;原创 2022-10-01 13:05:02 · 616 阅读 · 0 评论 -
Mysql之慢查询的排查及其优化
我们查询比较慢的sql我们一定要将其记录下来 记录我们执行的sql 这样们在排查的时候才可以记录下来,那么我们可以打开我们的mysql慢查询日志,在这个日志里会记录下我们慢查询的sql 当然这个慢查询日志中的慢查询是有限定时间的,我们可以更改限定时间找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。原创 2022-09-26 00:11:15 · 6242 阅读 · 2 评论 -
MySQL之一条Update的执行流程
文章目录1:执行的语句2:在更新操作中流程中特有的部分(1):redo log(重做日志)(2):binlog(归档日志)(3):Redo日志跟binlog日志的区别2:执行流程1:执行的语句update T set c = c + 1 where ID = 2;2:在更新操作中流程中特有的部分(1):redo log(重做日志)MySQL中如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程 IO 成本、查找成本都很高。为了解决这个问题,MySQL.原创 2022-05-20 21:48:57 · 527 阅读 · 0 评论 -
Mysql储存引擎
1:储存引擎MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。2:技术介绍例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。这些不同的技术以及配套的相关功能在MySQL中被原创 2022-03-26 21:34:31 · 77 阅读 · 0 评论 -
一条SQL语句的执行过程
一:思维导图原创 2022-03-22 23:45:27 · 287 阅读 · 0 评论 -
储存引擎InnoDB 索引选择 为何是B+树 而不是 B树 哈希表
一:概述首先需要澄清的一点是,MySQL 跟 B+ 树没有直接的关系,真正与 B+ 树有关系的是 MySQL 的默认存储引擎 InnoDB,MySQL 中存储引擎的主要作用是负责数据的存储和提取,除了 InnoDB 之外,MySQL 中也支持 MyISAM 作为表的底层存储引擎。我们在使用 SQL 语句创建表时就可以为当前表指定使用的存储引擎,你能在 MySQL 的文档 Alternative Storage Engines 中找到它支持的全部存储引擎,例如:MyISAM、CSV、MEMORY 等,然而原创 2022-01-17 20:28:12 · 764 阅读 · 0 评论 -
10-4 6-4 查询厂商“D“生产的PC和便携式电脑的平均价格 (10 分)思路+详解+测试用例
前言:测试用表贴心杰将这个测试表分享给大家 ,如果大家做题的时候发现那个点过不去,一定不要直接看别人的博客,先自己测试用例,如果思路也对 ,验证数据也对,还有错误 你再看看别人的思路!!!CREATE TABLE product( maker CHAR(20) , -- 制造商 model CHAR(20) NOT NULL, -- 产品型号 TYPE CHAR(20), -- 产品类型 PRIMARY KEY(model));CREATE T原创 2021-10-20 20:14:24 · 4440 阅读 · 0 评论 -
10-5 5-5 查询只卖三种不同型号PC的厂商 (20 分)
一:上码-- 查询只卖三种不同型号PC的厂商-- 分析:1.首先 pc和product表联合 字段为厂商-- 2.统计这些厂商的个数过滤掉型号小于3的厂商 表1-- 3.然后laptop和product联合 表2,printer和product联合 字段均为厂商 表3-- 4.将表1作为子表,查询条件为 不在表2和表3中 厂商-- 1.-- select maker-- from pc,product-- where p原创 2021-10-13 20:17:24 · 1404 阅读 · 0 评论 -
10-4 5-4 查询至少生产三种不同速度PC的厂商 (20 分)
一:上码-- 查询至少生产三种不同速度PC的厂商-- 分析:1.联合pc和product表,字段为厂商和速度 表1-- 2.按厂商名字进行分组统计厂商的个数,筛选条件为个数大于3的 表2-- 3.将表2 做为子表筛选出 maker-- 1.-- select maker,speed-- from pc,product-- where pc.model = product.model; -- -- 2.-- select maker,coun原创 2021-10-13 20:16:45 · 1002 阅读 · 0 评论 -
10-3 5-3 查询生产最高速度的计算机(PC或便携式电脑)厂商 (20 分)
一:上码-- 查询生产最高速度的计算机(PC或便携式电脑)厂商,查询结果按照厂商升序排列-- 分析:1.从pc表和product表当中当中找到速度最快的 表1-- 2.从laptop表和product表当中找到速度最快的 表2-- 3.将表1和表2联合起来找速度最快的-- 1.-- select maker,speed -- from pc,product-- where pc.model = product.model--原创 2021-10-13 20:15:55 · 1645 阅读 · 0 评论 -
10-2 5-2 查询至少生产两种不同的计算机(PC或便携式电脑)且机器速度至少为133的厂商 (20 分)(思路加详解+测试用例)
一:题目本题目要求编写SQL语句, 查询至少生产两种不同型号的计算机(PC或便携式电脑)且机器速度至少为133的厂商,输出结果按照制造商升序排列。提示:本题有三种情况: (1) 至少生产两种不同PC的厂商 (2) 至少生产两种不同便携式电脑的厂商 (3) 至少生产一种PC且至少生产一种便携式电脑的厂商。表结构:CREATE TABLE product( maker CHAR(20) , --制造商 model CHAR(20) NOT NULL, --产品型号 typ原创 2021-10-13 20:15:02 · 2101 阅读 · 0 评论 -
10-1 5-1 查询销售便携式电脑但不销售PC的厂商 (20 分)(分析+详解)
一:题目本题目要求编写SQL语句, 查询销售便携式电脑但不销售PC的厂商。提示:请使用SELECT语句作答。表结构:CREATE TABLE product( maker CHAR(20) , --制造商 model CHAR(20) NOT NULL, --产品型号 type CHAR(20), --产品类型 PRIMARY KEY(model));CREATE TABLE pc( model CHAR(20) NOT NULL,原创 2021-10-13 20:08:00 · 2174 阅读 · 0 评论 -
查询在具有最小内存容量的所有PC中具有最快处理器的PC制造商 (20 分)(两种思路+详解)
一:题目:本题目要求编写SQL语句, 查询在具有最小内存容量的所有PC中具有最快处理器的PC制造商。提示:请使用SELECT语句作答。表结构:CREATE TABLE product( maker CHAR(20) , --制造商 model CHAR(20) NOT NULL, --产品型号 type CHAR(20), --产品类型 PRIMARY KEY(model));CREATE TABLE pc( model CHAR(20)原创 2021-10-12 07:18:47 · 3378 阅读 · 2 评论 -
10-7 3-2-(b)查询由生产厂商B生产的所有产品的型号(model) 和价格(price) (10 分)
1.查询由生产厂商B生产的所有产品的型号(model) 和价格(price) (10 分)-- 查询由生产厂商B生产的所有产品的型号(model) 和价格(price)。 -- 提示:查询按照pc、laptop和printer的顺序进行。-- union:是连接多个查询的语句-- 还有就是这里的 in () 括号中不可添加为('1006','3002')select model,price from pc where model in (select model from prod原创 2021-10-04 19:42:58 · 3760 阅读 · 0 评论 -
Mysql中group by 使用中发现的问题
一:报错Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'wyj_dp02.emp.ename' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by二:报错代码(1) :这里我是准备原创 2021-09-18 09:29:59 · 220 阅读 · 0 评论