事务和锁

Mysql 中事务和锁的区别是什么?什么情况是事务可以实现但是锁实现不了的?
今天被问到,有点懵,有牛友解答一下吗
#华为#  #腾讯#  #百度#  #字节#  #美团#
全部评论
事务的本质是空间换时间(不同的事务在不同版本的数据上进行读取,这些事务是在不同的空间中进行操作的,自然没有并发安全问题),而对于有些特殊情况(增删改和select for update)来说,只有读取当前最新的版本数据才有意义,所以多个事物在执行这些操作时都需要在一个共享的数据上进行操作,只有用锁来互斥才能保证并发安全。
2 回复 分享
发布于 2024-09-04 22:26 新疆
ACID,锁实现了原子性,但没有实现一起完成一起失败,两个update语句,一个成功,一个失败,事务回滚,锁依然执行
2 回复 分享
发布于 2024-08-20 22:18 福建
问题有点奇怪啊,事务不是mvcc+锁实现的吗?为什么要把事务和锁放在一起比较?
点赞 回复 分享
发布于 2024-08-28 13:56 上海
事务用锁实现可重复读和序列化执行😕,用锁单线程也没法实现持久化吧
点赞 回复 分享
发布于 2024-08-20 21:45 安徽
保证多次操作的原子性吧
点赞 回复 分享
发布于 2024-08-20 21:38 广东
不考虑并发情况
点赞 回复 分享
发布于 2024-08-20 20:57 四川

相关推荐

05-25 22:01
已编辑
东北大学 Java
字节搜索二面挂当天被捞1、自我介绍2、你提到了用户的关注与取关,你用户关系服务是怎么设计的?(定义了关注表与粉丝表,两个表内容一致)3、你怎么保证两个表内容一致的?(目前是通过事务保证的,后面其实还可以通过订阅 binlog 伪从来保证一致性)3、如果是大 V 的情况,你有考虑到吗,做了哪些处理应对这种高并发(Redis 缓存+二级缓存,冷热数据分离)4、分布式 ID 你都用来生成什么 ID 的?(笔记 ID,用户 ID,用户 ID 用的号段模式,笔记 ID 考虑到雪花算法自带的时间戳可以实现冷热数据分离,发布久远的笔记不缓存在 redis,后由于点赞系统采用咆哮位图高效判断,但咆哮位图基本只能存储 32 位,遂也改为号段模式生成,生成效率基本没差多少)5、那你说说点赞系统怎么设计的?为什么改为咆哮位图了?(先是采用 Set 数据结构判断,后因为满足高并发需求,Set 模式占用内存太多,又改用布隆过滤器实现,大大降低内存占用。但布隆过滤器在判断存在时存在误判,需要从数据库进行二次校验。后改用咆哮位图,既能高效判断点赞与否,内存占用也大大降低)6、那你讲一下咆哮位图的机制,为什么有你说的这些优点?7、MySQL 了解吧,你讲一下 MySQL 的索引(一顿吟唱)8、说一下聚簇索引和非聚簇索引的区别9、联合索引再说一下,如何定义联合索引最好?(设计成覆盖索引)10、联合索引的顺序重要吗?(顺便再说一下索引下推)11、算法1:二叉树展开为链表12、算法2:根据层序遍历建树反问
字节跳动一面1184人在聊 查看13道真题和解析
点赞 评论 收藏
分享
评论
2
11
分享

创作者周榜

更多
牛客网
牛客企业服务