5-6年面试(上海清美1)

1.事务隔离级别

读未提交(Read Uncommitted)

这是最低的事务隔离级别。
一个事务可以读取另一个尚未提交的事务的修改。
可能导致脏读、不可重复读和幻读。
效率高,但并发控制能力最弱。

读已提交(Read Committed)
一个事务只能读取另一个已经提交的事务的修改。
可以防止脏读,但可能出现不可重复读和幻读。
大多数数据库系统的默认隔离级别。

可重复读(Repeatable Read)
在同一事务内,多次读取同一数据返回的结果是一样的。
可以防止脏读和不可重复读,但可能出现幻读。
MySQL的InnoDB存储引擎在默认设置下使用此隔离级别。

串行化(Serializable)
这是最高的隔离级别。
通过对事务进行排序,使得事务完全串行执行,从而解决脏读、不可重复读和幻读问题。
但性能开销最大,因为事务需要等待其他事务完成才能继续执行。

2.怎么写更新sql ?

1、start TRANSACTION;
BEGIN;
update a set …
commit;
2、update table set column = 1 where id = 2 for update

3.可重复读解决什么问题?

可重复读主要解决的是数据库并发控制中的一致性问题。在数据库事务处理中,当多个事务同时访问和修改同一数据时,可能会出现数据不一致的情况。可重复读隔离级别通过确保在一个事务内多次读取同一数据返回的结果相同,从而避免了“不可重复读”和“幻读”的问题。

具体来说,可重复读隔离级别通过一系列的控制机制,如行级锁、多版本并发控制(MVCC.MySQl中只有InnoDB支持MVCC,其他存储引擎不支持)等,实现了以下目标:

在一个事务内,无论其他事务如何修改数据,该事务看到的数据始终是一致的,即多次读取同一数据的结果相同。
防止了“脏读”,即一个事务读取到另一个未提交事务的修改。
降低了“幻读”的可能性,即在一个事务内执行相同的查询操作,结果集不会因其他事务的插入或删除操作而改变。
通过实现这些目标,可重复读隔离级别有效提高了数据库并发控制的性能和可靠性,特别是在高并发场景下,能够确保数据的一致性和完整性。需要注意的是,不同的数据库管理系统(DBMS)可能采用不同的实现方式和技术来支持可重复读隔离级别,因此在具体使用时需要参考相应的DBMS文档和规范。

4.Redis 的数据类型以及底层数据结构?

Redis支持多种数据类型,每种类型都有不同的特点和用途。以下是Redis的数据类型及其底层数据结构:

  1. 字符串(String):
    • 字符串类型是最基本的数据类型,可以存储任何类型的数据,如文本、整数或二进制数据。
    • 底层数据结构是简单动态字符串(SDS),它是一个可变长度的字节数组。
  2. 列表(List):
    • 列表类型是一个按插入顺序排序的字符串元素集合。
    • 底层数据结构使用双向链表实现,使得在两端进行快速插入和删除操作。
  3. 集合(Set):
    • 集合类型是一个无序且唯一的字符串元素集合。
    • 底层数据结构使用哈希表实现,保证高效的元素查找和去重。
  4. 有序集合(Sorted Set):
    • 有序集合类型是一个有序的字符串元素集合,每个元素关联了一个分数,用于排序。
    • 底层数据结构采用跳跃表和哈希表的组合实现,使得元素的添加、删除和范围查询等操作都具有较高的性能。
  5. 哈希表(Hash):
    • 哈希表类型是一个键值对的无序散列集合。
    • 底层数据结构使用哈希表实现,可以快速地通过键进行查找、插入和删除操作。
  6. Bitmap:
    • Bitmap类型是位数组,用于对大量位的设置、清除或查询操作。
    • 底层数据结构使用字节数组实现,每个比特位代表一个状态。
  7. HyperLogLog:
    • HyperLogLog类型用于进行基数估计,即统计集合中不重复元素的个数。
    • 底层数据结构使用原位指令实现,占用固定的空间,但可能会有一定的误差。

4.你用过Zset吗?

ZSet的应用场景非常广泛,例如排行榜、时间轴、朋友圈点赞等。通过将每个用户的分数存储在ZSet中,可以方便地进行排名、排序、取前几名等操作。同时,ZSet还可以用来实现时间轴功能,将每个用户的发布时间作为分数存储在ZSet中,然后按时间排序获取最新的信息。

5.kafka 分区分组有什么区别?

分区(Partition):

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

8)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值