颍上人才网
颍上职场资讯
颍上面试技巧
正文:腾讯面试官常问的数据库事务特性及底层原理详解,面试必备知识点
腾讯面试官常问的数据库事务特性及底层原理详解,面试必备知识点
来源:网络整理2025-01-22

前言

前几天,我在网上贴出了一些腾讯面试官问的问题。很多朋友都关注了他们。今天我就把这些问题的具体答案写下来。博主好久没看刻板印象了,只是想回顾一下。

我在面试中经历了三种算法。这部分稍后会更新。如果喜欢的话可以关注我的账号。

1、先讲一下数据库的事务特性的四大特点及底层原理 ⑴ 原子性

原子性意味着事务中包含的所有操作要么全部成功,要么全部失败并回滚。这和前两篇博客介绍的交易的功能是同一个概念。因此,如果事务的操作成功,就必须完全应用到数据库中。如果操作失败不会对数据库产生任何影响。

⑵ 一致性

一致性意味着事务必须将数据库从一种一致性状态转换为另一种一致性状态。也就是说,一个事务在执行前后必须处于一致性状态。

对于转账来说,假设用户A和用户B的总资金为5000,那么无论A和B之间如何转账或者完成多少次转账,交易后两个用户的资金总和为Completed应该还是5000,这就是事务的一致性。

⑶ 隔离

隔离性是指当多个用户并发访问数据库时,比如操作同一张表时,数据库为每个用户打开的事务不能被其他事务的操作干扰,多个并发事务必须相互隔离。

也就是说要达到这样的效果:对于任意两个并发事务T1和T2,从事务T1的角度来看,T2要么在T1开始之前结束,要么在T1结束之后开始,这样每个事务对其他事务都没有感觉正在同时执行。

⑷ 耐用性

持久性是指一旦事务提交,数据库中数据的改变就是永久性的,即使数据是

原则

数据库系统采用并发控制技术和日志恢复技术来避免这种情况。

并发控制技术:

并发控制技术是实现事务隔离和不同隔离级别的关键。实现方法有很多种。根据对可能发生冲突的操作采取的策略不同,可以分为两类:乐观并发控制和悲观并发控制。

这里介绍一下基于悲观锁的机制:

核心思想:对于可能发生冲突的并发操作,比如读-写、写-读、写-写,使用锁来使它们互斥。

锁通常分为两种:共享锁和排它锁

基于锁的并发控制流程:

事务根据对数据项执行的操作类型申请相应的锁(读申请共享锁,写申请排他锁)

申请锁的请求被发送到锁管理器。锁管理器根据当前数据项是否已经拥有锁以及请求的锁和持有的锁是否冲突来决定是否为该请求授予锁。

如果授予锁,则申请锁的事务可以继续执行;如果被拒绝,申请锁的事务将等待,直到其他事务释放锁。

可能出现的问题:

对于可能发生冲突的并发操作,锁将其执行从并行改为串行,这是一种悲观并发控制。

日志恢复技术

日志恢复技术保证了事务的原子性,使得一致性状态不会因为事务或者系统故障而被破坏。同时,对数据库提交的修改不会因为系统崩溃而丢失,保证了事务的持久性。

2、说说数据库的隔离级别

①可串行化:可以避免脏读、不可重复读、幻读的发生。

②可重复读:可以避免脏读和不可重复读的发生。

③ Read commit:这样可以避免脏读的发生。

④ 未提交读(Read uncommissed):最低级别,在任何情况下都无法保证。

3、说说数据库的索引机制

索引是一种数据结构(有序),帮助MySQL高效获取数据,提高数据检索的效率,降低数据库的IO成本(无需全表扫描),通过索引列对数据进行排序,降低数据的成本排序。 ,减少CPU消耗。

MySQL的InnoDB引擎使用B+树数据结构来存储索引。 B+树的阶数更多,路径更短,磁盘读写成本更低。非叶子节点只存储指针,叶子阶段存储数据。 B+树方便数据库扫描和区间查询,叶子节点是双向链表

4、说说Redis和MySQL的数据同步方案

延迟双删除策略

写数据库前后分别执行redis.del(key)操作,并设置合理的超时时间。

腾讯面试_面试腾讯客服自我介绍_面试腾讯会议可以用手机吗

为什么写完之后就删除呢?

因为在写入之前,可能会有一个读请求,读取未更正的数据,然后写入到缓存中。此时缓存与真实数据不一致,但读请求只会读取缓存并返回数据,导致数据更新较晚。

异步更新缓存(基于订阅binlog的同步机制)

MySQL binlog增量订阅消费+消息队列+增量数据更新到redis

面试腾讯客服自我介绍_腾讯面试_面试腾讯会议可以用手机吗

5. 谈谈从向网站发送请求到接收数据的过程中发生了什么。

1. 在浏览器中输入 URL。

2、通过DNS解析域名的实际IP地址

DNS解析会首先从浏览器的缓存中查找是否有该URL对应的IP地址。如果没有,它将在操作系统的 DNS 缓存中进行搜索。如果没有,则为路由器的 DNS 缓存。如果没有,则为 ISP 的 DNS 缓存。找进去。

3. 与WEB 服务器建立TCP 连接。

TCP协议通过三次握手建立连接。

温馨提示:本内容地址http://m.ysjob.cc/article/articledetail-157822.html转载请注明,以上腾讯面试官常问的数据库事务特性及底层原理详解,面试必备知识点资讯信息来自颍上人才网(颍上地区最大的颍上人才网颍上人才网

 
 ©2003-2018 颍上人才网  
客服电话:  QQ: