蔚来面试题

文章目录

    • 1.解释脏读/不可重复读/幻读
      • 不可重复读和幻读的区别
    • 2.索引失效的场景有哪些?
    • 3.Explain执行计划用过吗?
    • 4.Type字段有什么信息?
    • 5.binlog和redolog区别?
    • 6.Redis基本数据类型
    • 7.有序集合底层实现数据结构?
    • 8.跳表插入数据的过程?
      • 为什么要这样设计呢?
      • 添加流程
    • 9.线程池有哪些参数?
    • 10.拒绝策略有哪些?
    • 11.你常用的拒绝策略是哪种?为什么?
    • 12.三个线程交替打印ABC

1.解释脏读/不可重复读/幻读

脏读:指一个事务读取到了另一个事务为提交保存的数据,之后此事务进行了回滚操作,从而导致第一个事务读取了一个不存在的脏数据。
不可重复读:在同一个事务中,同一个查询在不同的时间得到了不同的结果。例如事务在 T1 读取到了某一行数据,在 T2 时间重新读取这一行时候,这一行的数据已经发生修改,所以再次读取时得到了一个和 T1 查询时不同的结果。
幻读:同一个查询在不同时间得到了不同的结果,这就是事务中的幻读问题。例如,一个 SELECT 被执行了两次,但是第二次返回了第一次没有返回的一行,那么这一行就是一个“幻像”行。

不可重复读和幻读的区别

不可重复读的重点是修改:在同一事务中,同样的条件,第一次读的数据和第二次读的数据不一样。(因为中间有其他事务提交了修改);
幻读的重点在于新增或者删除:在同一事务中,同样的条件,,第一次和第二次读出来的记录数不一样。(因为中间有其他事务提交了插入/删除)。

2.索引失效的场景有哪些?

常见的索引失效场景有以下这些:
未遵循最左匹配原则
使用列运算
使用函数方法
类型转换
使用 is not null
错误的模糊匹配,使用右 % 开始查询。

具体内容请参考:https://www.javacn.site/interview/mysql/indexinvalid.html

3.Explain执行计划用过吗?

Explain 是用来分析 SQL 的执行情况的,explain 使用如下,只需要在查询的 SQL 前面添加上 explain 关键字即可,如下图所示:
在这里插入图片描述
而以上查询结果的列中,我们最主要观察 key 这一列,key 这一列表示实际使用的索引,如果为 NULL 则表示未使用索引,反之则使用了索引。

以上所有结果列说明如下:

  • id — 选择标识符,id 越大优先级越高,越先被执行;
  • select_type — 表示查询的类型;
  • table — 输出结果集的表;
  • partitions — 匹配的分区;
  • type — 表示表的查询类型;
  • possible_keys — 表示查询时,可能使用的索引;
  • key — 表示实际使用的索引;
  • key_len — 索引字段的长度;
  • ref— 列与索引的比较;
  • rows — 大概估算的行数;
  • filtered — 按表条件过滤的行百分比;
  • Extra — 执行情况的描述和说明。

4.Type字段有什么信息?

Explain 执行计划中最重要的就是 type 字段,type 包含的信息如下:

  • all — 扫描全表数据;
  • index — 遍历索引;
  • range — 索引范围查找;
  • index_subquery — 在子查询中使用 ref;
  • unique_subquery — 在子查询中使用 eq_ref;
  • ref_or_null — 对 null 进行索引的优化的 ref;
  • fulltext — 使用全文索引;
  • ref — 使用非唯一索引查找数据;
  • eq_ref — 在 join 查询中使用主键或唯一索引关联;
  • const — 将一个主键放置到 where 后面作为条件查询, MySQL 优化器就能把这次查询优化转化为一个常量,如何转化以及何时转化,这个取决于优化器,这个比 eq_ref 效率高一点。

5.binlog和redolog区别?

binlog(二进制日志)和 redolog(重做日志)都是 MySQL 中的重要日志,但二者存在以下不同。

  1. binlog(二进制日志):
  • binlog 是 MySQL 的服务器层日志,用于记录对数据库执行的所有修改操作,包括插入、更新和删除等。它以二进制格式记录,可以被用于数据复制、恢复和故障恢复等操作。
  • binlog 记录了逻辑上的操作,即执行的 SQL 语句或语句的逻辑表示。
  • binlog 是在事务提交后才会生成,因此它是持久化的。
  • binlog 可以被配置为不同的格式,包括基于语句的复制(statement-based replication)、基于行的复制(row-based replication)和混合复制(mixed replication)。
  1. redolog(重做日志):
  • redolog 是 MySQL 的存储引擎层日志,用于确保数据库的事务持久性和崩溃恢复能力。
  • redolog 记录了物理层面的修改操作,即对数据页的物理修改。它主要用于保证事务的持久性,确保在发生崩溃时,已经提交的事务对数据库的修改能够被恢复。
  • redolog 是循环写入的,它的数据写入到磁盘上的文件中。在发生崩溃时,通过 redolog 的重做操作,可以将数据库恢复到崩溃前的一致状态。
  • redolog 是在事务执行期间不断写入的,以确保在系统崩溃时可以重做所有已提交的事务。

小结:binlog 用于记录逻辑层面的操作,可以用于数据复制和恢复,而 redolog 用于记录物理层面的操作,确保事务的持久性和崩溃恢复。它们在功能和使用上有一些不同,但都是 MySQL 中重要的日志机制。

6.Redis基本数据类型

Redis 常用的数据类型有 5 种:String 字符串类型、List 列表类型、Hash 哈希表类型、Set 集合类型、Sorted Set 有序集合类型, 这 5 种常用类型的用途如下:

  1. String:字符串类型,常见使用场景是:存储 Session 信息、存储缓存信息(如详情页的缓存)、存储整数信息,可使用 incr 实现整数+1,和使用 decr 实现整数 -1;
  2. List:列表类型,常见使用场景是:实现简单的消息队列、存储某项列表数据;
  3. Hash:哈希表类型,常见使用场景是:存储 Session 信息、存储商品的购物车,购物车非常适合用哈希字典表示,使用人员唯一编号作为字典的 key,value 值可以存储商品的 id 和数量等信息、存储详情页信息;
  4. Set:集合类型,是一个无序并唯一的键值集合,它的常见使用场景

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/156419.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于圆通物流在AppLink上的操作

在使用物流系统时,我们会出现订单变化而导致物流轨迹发生改动,如果反馈不及时会造成额外的工作量以及会出现人为的操作失误,我们尝试借助AppLink来实现圆通物流在发生变化时的信息同步 登录开放平台 复制右侧登录地址登录圆通速递管理后台&…

python数据处理作业10:将图中数据创建一个DataFrame,保存为csv格式,读取该文件,删除体育成绩,并添加语文,数学和英语的平均成绩

每日小语 心无旁骛,专心于事业的追求,就会忘掉许多烦恼,找到许多努力过程中的快乐。——黑格尔 gpt import pandas as pd# 创建DataFrame并保存为CSV文件 data {姓名: [张三, 李四, 王五, 赵六],语文成绩: [80, 90, 85, 75],数学成绩: [7…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 1》(5)

《Linux操作系统原理分析之Linux 进程管理 1》(5) 4 Linux 进程管理4.1 Linux 进程概述4.1.1 Linux 进程的组成4.1.2 Linux 进程在处理机上的执行状态4.1.3 进程空间和系统空间4.1.4 进程上下文和系统上下文 4 Linux 进程管理 4.1 Linux 进程概述 4.1.…

恭喜顺利结项 | 开源之夏 2023openGauss项目结项结果公示

祝贺! 激动人心的时刻终于到来!开源之夏 2023 活动结项审核结果正式出炉。此次,openGauss深度参与活动,发布12个openGauss相关项目,10个项目进入开发周期,最终有8个项目成功结项。恭喜所有成功结项的同学&…

三菱FX3U小项目—机床定时器延时启动

目录 一、项目描述 二、IO口分配 三、项目程序 四、总结 一、项目描述 为了防止工人操作失误,启动按钮需要按住1s后,设备才启动,启动后第一台电机启动10s后第二台电机自动启动,当按下停止按钮时,两台电机同时停止。…

在Broker端进行消息过滤

在Broker端进行消息过滤,可以减少无效消息发送到Consumer,少占用网络带宽从而提高吞吐量。Broker端有三种方式进行消息过滤。 1.消息的Tag和Key 对一个应用来说,尽可能只用一个Topic,不同的消息子类型用Tag来标识(每条…

扩散模型实战(十):Stable Diffusion文本条件生成图像大模型

推荐阅读列表: 扩散模型实战(一):基本原理介绍 扩散模型实战(二):扩散模型的发展 扩散模型实战(三):扩散模型的应用 扩散模型实战(四&#xff…

MySQL集群高可用架构之MMM

目录 一、MMM概述 1.1 MMM 简介 1.2 MMM高可用架构 1.3 MMM工作原理 1.4 工作流程图 二、MMM高可用双主双从架构部署 1、架构: 2、搭建 MySQL 多主多从模式 3、安装配置 MySQL-MMM 4、故障测试 一、MMM概述 1.1 MMM 简介 MMM(Master-Master re…

设计模式(5)-使用设计模式实现简易版springIoc

自定义简易版springIoc 1 spring使用回顾 自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟。 数据访问层。定义UserDao接口及其子实现类 public interface UserDao {public void add(); }public…

Redis7.2.3集群安装,新增节点,删除节点,分配哈希槽,常见问题

概念: 【Redis】高可用之三:集群(cluster) - 知乎 实操: Redis集群三种模式 主从模式 优势: 主节点可读可写 从节点只能读(从节点从主节点同步数据) 缺点: 当主节点…

U盘不能访问不一定是坏了,可能还有其他原因!U盘无法访问修复详解

当你将USB驱动器连接到计算机时,系统会将其识别为可移动驱动器,并启动其文件管理过程。 然而,用户现在注意到,即使可以检测到他们的USB驱动器,也无法访问它们。 如果幸运的话,拔下插头就能解决问题,但如果不是,请继续阅读以了解更多故障排除选项。 USB闪存驱动器是便…

开源电子画册源码系统 可重复利用 适合任何行业 带完整的搭建教程

电子画册,又称电子样本、电子商刊、电子杂志,是一种集合图片处理、文案策划、音乐加工、视频、统计调查、虚拟现实、三维动画等多种技术和表现形式为一体的多媒体画册,电子杂志是纸质印刷画册(样本)的升级版本&#xf…

千兆光模块和万兆光模块需要注意哪些事项

随着网络通信技术的发展,千兆光模块和万兆光模块已经成为了网络设备中不可或缺的关键组件。光模块的制造涉及到许多技术和工艺问题,需要严格的控制和管理。本文将从工艺流程、材料选用、测试认证等方面,详细介绍制造千兆光模块和万兆光模块需…

2023年中国恒温蜡疗仪发展趋势分析:应用前景存有很大发展与探索空间[图]

恒温电蜡疗仪可将蜡熔化,利用蜡自身特点,能阻止热的传导、散热慢、气体和水分不易消失,保温性能优越。利用蜡能紧密贴于体表的可塑性,可加入其他药物协同进行治疗,也可将中药与蜡疗有机地结合在一起,产生柔…

为什么嵌入式没有35岁危机?

为什么嵌入式没有35岁危机? 在当今数字化时代,IT行业变化迅速,技术的更新迭代速度惊人。然而,有一个技术领域却能够在这个竞争激烈的行业中稳步前行,而且不受35岁危机所困扰,那就是嵌入式技术。 嵌入式技术是指将计算…

三羊马-001317 三季报分析(20231116)

三羊马-001317 基本情况 公司名称:三羊马(重庆)物流股份有限公司 A股简称:三羊马 成立日期:2005-09-06 上市日期:2021-11-30 所属行业:装卸搬运和运输代理业 周期性:0 主营业务:通过公铁联运方式…

11.16堆的一些性质与操作

1016 7,5,4,3,2,6,1 7,4,6,1,3,2,5 没有度为1的结点说明为满树 A.哈夫曼树一定没有度为1的结点。最大堆可能有度为1的结点 D.哈夫曼…

GAT里面的sofamax函数的实现:

1.sofamx 公式: 2. GAT里的sofamax函数的实现: 1. 因为指数在x轴正轴爆炸式地快速增长,如果zi比较大,exp⁡(zi)也会非常大,得到的数值可能会溢出。溢出又分为下溢出(Underflow)和上溢出&#x…

计算机毕设 深度学习 机器学习 酒店评价情感分析算法实现

文章目录 0 前言概述项目所需模块数据数据说明字段说明 数据处理分词处理停用词处理样本均衡建立多层感知机分类模型训练模型网络检测率以及检测结果 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点&a…

2023最新版JavaSE教程——第8天:面向对象编程(高级)

目录 一、关键字:static1.1 类属性、类方法的设计思想1.2 static关键字1.3 静态变量1.3.1 语法格式1.3.2 静态变量的特点1.3.3 举例1.3.4 内存解析 1.4 静态方法1.4.1 语法格式1.4.2 静态方法的特点1.4.3 举例 1.5 练习 二、单例(Singleton)设计模式2.1 设计模式概述…