SQL 高级面试题

1. 什么是事务

参考答案

    数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令。事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行,因此事务是一个不可分割的工作逻辑单元。

2. 事务特性有哪些?

参考答案

    原子性:事务是一个完整的操作。事务的各元素是不可分的(原子的)。事务中的所有元素必须作为一个整体提交或回滚。如果事务中的任何元素失败,则整个事务将失败。一致性:事务的执行结果必须使数据库从一个一致性状态到另一个一致性状态。隔离性:对数据进行修改的所有并发事务是彼此隔离的, 这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。持久性:事务一旦提交,其对数据库的更新就是持久的。任何事务或系统故障都不会导致数据丢失。

3. 事务并可能会出现什么问题?

参考答案

    脏读:事务 A 更新了数据,但还没有提交,这时事务 B 读取到事务 A 更新后的数据,然后事务 A 回滚了,事务 B 读取到的数据就成为脏数据了。不可重复读:事务 A 对数据进行多次读取,事务 B 在事务 A 多次读取的过程中执行了更新操作并提交了,导致事务 A 多次读取到的数据并不一致。幻读:事务 A 在读取数据后,事务 B 向事务 A 读取的数据中插入了几条数据,事务 A 再次读取数据时发现多了几条数据,和之前读取的数据不一致。丢失修改:事务 A 和事务 B 都对同一个数据进行修改,事务 A 先修改,事务 B 随后修改,事务 B 的修改覆盖了事务 A 的修改。

4. 事务隔离级别有哪些?

参考答案

    读未提交 (READ UNCOMMITTED):所有事务都可以看到其它未提交事务的执行结果,该隔离级别一般不会使用。读已提交 (READ COMMITTED):一个事务只能看到已经提交的事务所做的变更。可重复读 (REPEATABLE READ):确保同一事务的多个实例在并发读取数据时会看到相同的数据行。串行化 (SERIALIZABLE):完全串行化读,每次读都需要获得表级共享锁,读写相互阻塞。

5. 事务特性有哪些?

参考答案

    原子性:事务是一个完整的操作。事务的各元素是不可分的(原子的)。事务中的所有元素必须作为一个整体提交或回滚。如果事务中的任何元素失败,则整个事务将失败。一致性:事务的执行结果必须使数据库从一个一致性状态到另一个一致性状态。隔离性:对数据进行修改的所有并发事务是彼此隔离的, 这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。持久性:事务一旦提交,其对数据库的更新就是持久的。任何事务或系统故障都不会导致数据丢失。

6. 什么是 WAL 机制?

参考答案

    在 MySQL 中,为了提高数据库的性能,MySQL 采用了 WAL(Write-Ahead Logging)机制,即客户端在修改数据的过程后,并不会立马对硬盘中的数据进行更新。

7. MySQL 常见日志有哪些?

参考答案

    错误日志(errorlog)一般查询日志(general log)二进制日志(binlog)中继日志(relay log)重做日志(redo log)回滚日志(undo log)

8. 什么是索引?

参考答案

    数据库只做两件事情:存储数据、检索数据。而索引是在你存储的数据之外,额外保存一些路标(一般是 B+树),以减少检索数据的时间。所以索引是主数据衍生的附加结构。索引是对数据表的一列活多列的值进行排序的一种结构,使用索引考研快速访问数据表中的特定信息。

9. 索引分类有哪些?

参考答案

    普通索引:最基本的索引,它没有任何的限制。唯一索引:索引列的值必须唯一,允许有空值。主键索引:它是一种特殊的唯一索引,不允许有空值。复合索引:又叫做多列索引,联合索引。多个字段上建立的索引,提高复合条件查询的速度全文索引:对文本的内容进行分词,进行搜索。

9. 索引底层结构是什么?

参考答案

    索引的数据结构主要有 B+树和哈希表,对应的索引分别为 B+树索引和哈希索引。InnoDB 引擎的索引类型有 B+树索引和哈希索引,默认的索引类型为 B+树索引。B+树的优势:-单一节点存储更多元素,减少 IO- 所有查询都要找到叶子节点,查询稳定- 所有叶子节点形成有序链表,方便范围查询- 一般性情况,数据库的 B+树的高度一般在 2~4 层,这就是说找到某一键值的行记录最多需要 2 到 4 次逻辑 IO,相当于 0.02 到 0.04s。

10. 按粒度划分锁有那些?

参考答案

    行锁:粒度最小的锁,表示只针对当前操作的行进行加锁;表锁:粒度最大的锁,表示当前的操作对整张表加锁;页锁:粒度介于行级锁和表级锁中间的一种锁,表示对页进行加锁。

11. MySQL 中什么是存储引擎

参考答案

    数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。

12. MySQL 常用存储引擎有哪些?

参考答案

    InnoDB 事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MyISAM 存储引擎,并发性比较差,不支持事物和外键等操作,默认的锁粒度为表级锁。MySQL5.5 之前的默认存储引擎是 MyISAM,5.5 之后就改为了 InnoDB。

13. 什么是主从同步?

参考答案

    使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。一句话表示就是,主数据库做什么,从数据库就跟着做什么。

14. 主从同步原理

参考答案

    整体上来说,复制有 3 个步骤:1. master 将改变记录到二进制日志 (binary log) 中。2. slave 的 io 线程将 master 的 binary log events 拷贝到它的中继日志 (relay log)。3. slave 的 sql 线程解析中继日志中的事件并在从库执行,保持与主库一致。

15. 什么是读写分离

参考答案

    读写分离就是只在主数据库服务器上写,只在从数据库服务器上读。基本的原理是让主数据库服务器处理事务性查询,而从数据库服务器处理 select 查询。数据库复制被用来把主数据库服务器上数据变更同步到集群中的从数据库服务器。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多模态推荐系统综述:三、多模态特征增强

三、多模态特征增强 同一对象的不同模态表示具有独特且共同的语义信息。如果能够区分独特特征和共同特征,那么MRS的推荐性能和泛化能力可以得到显着提高。解耦表征学习(DRL)和对比学习(CL)被用来进行基于交互的特征增…

第二证券:主力为什么要砸盘?

砸盘就是在股票的某个阶段有许多卖出单,这些许多的卖出单不断的成交使股票价格出现快速下跌。一般是受到主力资金洗盘或者出货所影响形成的。 1、洗盘 个股通过长时间上涨之后,盘中的散户较多,主力为了洗掉盘中的散户,在低位吸筹…

从私有Git仓库的搭建到命令的使用及部署再到分支管理

一、版本控制系统/版本控制器 1. 版本控制系统: git 分布式 —没有中心代码库,所有机器之间的地位同等(每台机器上都有相同的代码) svn 集中管理的 —有中心代码库,其他都是客户端 2.git与svn介绍 1.git属于分布…

Mac版 Photoshop 2021---PS2021

Adobe Photoshop 2021是一款强大的图像处理软件,它可以帮助用户进行各种图像编辑、修饰和合成工作。这款软件拥有先进的图像处理技术,支持多种图像格式,可以轻松实现各种复杂的图像处理任务。它还提供了丰富的滤镜和工具,使用户可…

全网最全Stable Diffusion原理快速上手,模型结构、关键组件、训练预测方式!!!!

手把手教你入门绘图超强的AI绘画程序,用户只需要输入一段图片的文字描述,即可生成精美的绘画。给大家带来了全新保姆级教程资料包(文末可获取) 【AIGC】Stable Diffusion的建模思想、训练预测方式快速 在这篇博客中,…

运动耳机怎么选?2024年运动耳机推荐,运动蓝牙耳机排行榜10强

​在现代生活中,音乐和运动已经成为很多人生活不可分割的一部分。运动耳机在这样的背景下变得越来越受欢迎,它们不仅可以在运动时提供音乐的陪伴,还能增加运动时的乐趣和动力。但是,面对市面上众多不同类型的运动耳机,…

Fiddler 一个好用的监控http和https的工具

最近使用了一个好用的工具Fiddler, 可以监控客户端到服务器端的 HTTP 和 HTTPS 协议请求。 Fiddler 是一个强大的 Web 调试工具,它通过以代理服务器的方式工作,可以捕获和分析客户端与服务器之间的 HTTP 和 HTTPS 通信。可以针对特定的http请…

哈希-力扣454.四数相加Ⅱ

题目 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&#xff1a;nums1 [1…

MicroPython的文件系统操作

本文介绍了MicroPython如何提供并使用设备上的文件系统&#xff0c;以及如何使用Python标准的I/O方法进行持久存储。MicroPython会自动创建默认配置并侦测主文件系统&#xff0c;同时支持修改分区、文件系统类型或自定义块设备。 文件系统通常由设备上的内部闪存支持&#xff…

面试 React 框架八股文十问十答第二期

面试 React 框架八股文十问十答第二期 作者&#xff1a;程序员小白条&#xff0c;个人博客 相信看了本文后&#xff0c;对你的面试是有一定帮助的&#xff01;关注专栏后就能收到持续更新&#xff01; ⭐点赞⭐收藏⭐不迷路&#xff01;⭐ 1&#xff09;redux 的工作流程&…

golang中gorm使用

前言 记录下go语言操作mysql数据库&#xff0c;选用gorm&#xff0c;gorm是一个流行的对象关系映射&#xff08;ORM&#xff09;库&#xff0c;用于简化与数据库的交互。 接入步骤 安装gorm&#xff1a;首先&#xff0c;你需要使用Go模块来安装gorm。在终端中运行以下命令&…

【Linux】nmap命令:扫描网络中的主机和端口

目录 1.扫描特定IP地址的所有端口&#xff1a; 2.扫描特定IP地址的特定端口&#xff1a; 3.扫描一个IP地址范围的端口&#xff1a; 4.扫描特定端口范围&#xff1a; 5.扫描并显示所有端口的详细信息&#xff1a; 6.扫描并输出XML格式的结果&#xff1a; 7.使用“ping…

Doris 案例篇——长安汽车基于 Doris 的车联网数据分析平台建设实践

Doris 案例篇——长安汽车基于 Doris 的车联网数据分析平台建设实践 随着消费者更安全、更舒适、更便捷的驾驶体验需求不断增长,汽车智能化已成必然趋势。长安汽车智能化研究院作为长安汽车集团有限责任公司旗下的研发机构,专注于汽车智能化技术的创新与研究。为满足各业务部…

数据结构第十一弹---堆

堆 1、堆的概念及结构2、堆的性质3、堆的调整算法3.1、向下调整算法3.2、向上调整算法 4、堆的实现4.1、头文件包含和结构定义4.2、初始化4.3、销毁4.4、插入数据4.5、删除数据 删除堆顶4.6、获取堆顶元素4.7、获取有效数据个数4.8、判断是否为空 5、代码汇总5.1、Heap.h5.2、H…

好用的设备租赁管理软件有哪些?

“我们公司是做设备租赁的&#xff0c;想找一款适合设备租赁的库存管理软件&#xff0c;最好有库存管理&#xff0c;客户信息&#xff0c;设备外调管理&#xff0c;租赁天数管理&#xff0c;设备的借出与归还信息管理与查询。” 总结一下—— 库存管理客户信息管理设备租赁管…

阿里云服务器 使用Certbot申请免费 HTTPS 证书及自动续期

前言 Certbot是一款免费且开源的自动化安全证书管理工具&#xff0c;由电子前沿基金会&#xff08;EFF&#xff09;开发和维护&#xff0c;是在Linux、Apache和Nginx服务器上配置和管理SSL/TLS证书的一种机制。Certbot可以自动完成域名的认证并安装证书。 一、 安装软件 1.1…

38.深入MySQL

深入MySQL 索引 索引是关系型数据库中用来提升查询性能最为重要的手段。关系型数据库中的索引就像一本书的目录&#xff0c;我们可以想象一下&#xff0c;如果要从一本书中找出某个知识点&#xff0c;但是这本书没有目录&#xff0c;这将是意见多么可怕的事情&#xff01;我们…

JVM如何执行synchronized修饰的方法

首先市面上关于synchronized的资料已经很多了&#xff0c;但是大家对于底层的原理实现可能没有什么概念&#xff0c;大多都是死记硬背&#xff0c;所以我想通过实战的方式给大家带来一些不一样的体验。具体体现在哪些方面呢&#xff1f; 更系统。市面上目前虽然资料众多&#x…

【OpenCV学习笔记02】- 图像入门

内容 这里介绍了图像处理的入门操作&#xff0c;&#xff0c;你将学习如何读取图像&#xff0c;如何显示图像以及如何将其保存回去你将学习以下功能&#xff1a;cv.imread()&#xff0c;cv.imshow()&#xff0c;cv.imwrite() 简单使用OpenCV 读取图像 使用cv.imread()函数读…

【程序员干货】开发常用免费接口

全国快递物流地图轨迹查询&#xff1a;【H5物流轨迹、单号识别】通过物流单号和收寄件地址&#xff0c;自动评估物流时效&#xff0c;并在地图中展示包裹运输轨迹。包括顺丰、圆通、申通等主流快递公司。自动识别快递公司及单号&#xff0c;实时查询&#xff0c;稳定高效&#…