101
BQsummer 222 天前
"普通 Select 无论加不加锁,无论怎么查询都不会有幻读问题,如果 for update 或者 delete update 这种操作就会用临建锁或者间隙锁来保证一致" 原 op 的这句话错的一塌糊涂, 为啥大家关注点不在技术本身
|
102
zhuziyi 222 天前
这类群 99% 都是垃圾消息生产地,想在这种微信群里获得有效有价值的信息太困难。(非公开、小、私群除外)
|
103
sockpuppet9527 222 天前
歪下楼,纯讨论技术
1. 首先“幻读”是否一定要加锁? 我的答案是:否,完全可以以空间换时间来解决"幻读"的问题。拿 pg 举例,xlog 中记录了每一条 insert/update/delete 语句且带有了 xmin/xmax/tid ,假设我们不存在 heap 表,将数据只存在 xlog 中,那么同一个事务只需要去扫当前 tid 事务 id 命中的 xlog 进行还原就行,这个时候是无需锁的,因为 xlog 中不会做 in-place update/delete 。 像现在的 [neon db]( https://github.com/neondatabase/neon) 做法是类似的。 2. mysql 中“幻读”是否一定要加锁? 不了解 mysql ,不知道 |
104
sockpuppet9527 222 天前
@ucando
"快照读明明就是有可能发生幻读",我理解这一点上不是绝对。 pg 有些存储插件的做法是把数据本身做成不可改的,比如 gp 的 aoco ,对于 aoco 来说快照读只发生在辅助表内,也就是读 heap 表的部分,这部分发不发生幻读,取决于隔离级别的。 之前看到有做法把 aoco 的辅助表改到了直接拿个 log-base 的引擎在存,隔离级别在这一层面会失效,且只有 vacuum 发生才会上锁。 |
105
dogfeet 222 天前
大家都在说什么啊?是我搞错了吗? rr 应该妥妥的有幻读的问题啊。
|
106
xz410236056 222 天前
这些自称什么架构师的,也就骗骗刚毕业的。。不都是卖课、卖教程的吗
|
107
tedzhou1221 222 天前
@dogfeet 题主说在没有 mvcc 下,rr 有幻读,但 mysql 的 innodb, 有用 mvcc 来解决 幻读问题。
前面也贴出文章 https://mp.weixin.qq.com/s/K5l6hixzn5K9jWd7shu2GQ |
109
tangv22ex 222 天前
@gongxuanzhang #23 UP 视频推一下
|
110
WalterHs 222 天前 2
突然想起来前几天 Fenng 在推特上跪舔微信本地文件存储,喷那些骂微信的都是傻逼,然后云风大佬亲自做实验,然后再评论区证明 Fenng 说的不对,微信本地文件存储本身确实有问题,结果 Fenng 回了几句眼看要被拆穿直接把云风拉黑了。
这些人的一贯做法就是这样的,树立自己意见领袖的地位大于一切,消灭一切反对者,真理和事实在这里并不重要。 |
111
ucando 222 天前
@tedzhou1221 文章里也说了 mvcc 并不能解决所有情况的幻读,所以问题其实还在。一般情况下一个事务中是会对某些表做增删改的操作的,那就一定会有当前读的操作,如果仅仅解决快照读的幻读问题,还是不能保证不出问题。反正我做这种操作前一定会加锁,不指望靠这些默认的逻辑来保障数据安全
|
112
ChainLock 222 天前
资深技术专家 就是狗屎
|
113
oldking24 222 天前
mvcc 在 mysql 的可重复读的隔离级别下没有完全的解决幻读问题。有部分当前读会出现幻读的数据。
|
115
aliyun2017 222 天前
你不会是说姓袁的的吧
|
116
xiaohundun 222 天前
做视频,揭穿他,我帮你点赞,我帮你 at 他,搞他!
|
117
goxxoo 222 天前
贫道用 laravel 的开源库也遇到过, 具体哪个就不提了
|
118
louettagfh 222 天前
你说的确实不对啊,RR 还是会有幻读的
|
119
lasuar 222 天前
所以我就没有建立一个 k8s 交流群,都是 issue 或者 email 交流
|
120
iCong 222 天前
|
121
angeni 222 天前
和人观点:
1. 你确实说错了,RR 有幻读。MVCC 解决不了 insert into 带来的幻读问题 2. 这个架构师技术不论,脾气太大 |
122
lesismal 222 天前
技术人说话多数都比较直, 一不小心就闹矛盾了
|
123
iCong 222 天前
去架构师的 B 站发了下 v2 的链接被删了。还拉黑了哈哈。
|
124
sdfw23xd 222 天前 1
我也支持你发个视频反驳他,事不是什么大事,关键是太恶心了。
|
125
shayebushi 222 天前 via Android 1
人家洪金宝在佛山是打拳祖师爷,位置稳稳的,你叶问非要去那教拳,这不挑衅吗 不踢你踢谁
|
126
maemolee 221 天前
@gongxuanzhang #13 支持,不喜欢看到这种 ego 特别大的自媒体,见了恶心。
|
127
ma199385 221 天前
|
129
netabare 221 天前 via Android
不愧是 Java 架构师,整天拿着个破锁在那里锁个没完没了的。
|
130
EndlessMemory 221 天前
你敢质疑他他就给你封了
|
132
Majjx 221 天前
这要让你说清楚了,还怎么资深,怎么 ga 韭菜,怎么拉人入伙,怎么当领导。有仇发视频,没仇就当没这人
|
133
Lockroach 221 天前
看到下面都是夸的你就该知道该跑了
想当赛博皇帝当的 |
134
hangszhang 221 天前
@0xLittleFi #91 这不是幻读,前后两次的 SQL 查询语句都不一样了,幻读的定义是前后查询语句一样
|
135
hangszhang 221 天前
@ucando 不是啊,MVCC 解决了当前读的问题呀,假如你第一次查询是快照读,第二次查询是当前读,这都不是同一条 SQL 了,应该不能叫幻读吧
|
136
liprais 221 天前 via iPhone
目测是菜鸡互琢,两个半调子没啥好讨论的
还有以 mysql 官方文档为依据的一看就是自己没动手验证过,bug 多到你怀疑人生 |
137
ucando 221 天前
@hangszhang 文章里已经说明了 MVCC 下幻读的触发条件了,能让同一事务中的同一条查询 SQL 产生不同的结果。
A 事务:SELECT * FROM users WHERE AGE > 10 AND AGE <30; 返回 2 条结果。 B 事务:INSERT INTO users(gmt_create, age, name) values(now(), 20, 'Paidaxing999'); COMMIT; A 事务:UPDATE users set name = "Paidaxing888" where age = 20; A 事务:SELECT * FROM users WHERE AGE > 10 AND AGE <30; 返回 3 条结果。 |
138
wcnmm 221 天前
@luolin0826 语言的艺术啊,确实很厉害。
|
139
hangszhang 221 天前
@ucando #137 看明白了,感谢,update 语句把前面 insert 的数据数据读到了当前 session 里面
|
140
ychost 221 天前
已经忘了幻读啥的了,实际生产环境中高并发、大数据很少用 MySQL ,一般高并发就不应该出现复杂业务逻辑
|
141
gongxuanzhang OP @grimbedroom @blankmiss @MoGeJiEr @adm7n @dolorain @billzhuang @oneisall8955
@tangv22ex @maemolee @sdfw23xd @xiaohundun 视频在 append 里面了 |
142
HelloAmadeus 221 天前 via iPhone
这连 mvvc 是什么都不知道吧?
|
143
nicoljiang 221 天前
还是支持一下 op ,反对这种技术行业的“官僚”主义。
|
145
sloknyyz 220 天前
这种建群的想都不用想就是割韭菜,所有名为技术交流群最后都会沦为吹水群。
|
146
lizy0329 220 天前
最小可爱的一种行为就是+所谓的群,有这时间还不如多读读官方文档
|
147
gongxuanzhang OP @lizy0329 你说的对
|
148
CuChulainn 220 天前
这个架构师不过如此
|
149
hellomsg 220 天前
|
152
hellomsg 220 天前
@lambdaX999 #81 我理解的结论:若欲彻底解决幻读问题,在 InnoDB 中唯一可选的隔离级别是 Serializable (可串行化)级别。
https://mp.weixin.qq.com/s/K5l6hixzn5K9jWd7shu2GQ |
153
maemolee 219 天前
@gongxuanzhang #141 很好,点赞了!
|
154
fionasit007 219 天前
|
155
shurimasoul 219 天前
支持发视频 diss 他
|
156
Wesson 219 天前
@NeedI09in 一致性非锁定读,也就是快照读,把头埋进快照里,完全不顾外面天翻覆地的变化,自然发现不了幻象,这不代表解决了幻读,只是你看不见而已。这比幻读更糟糕。
|
158
lambdaX999 219 天前
![]( https://img.erpweb.eu.org/imgs/2024/05/932a103a6951923c.png)
纯路人,对双方都没有恶意,OP 能出个视频来详细的分析下这个问题吗?我看 B 站下面很多粉丝说 OP 不懂 |
159
gongxuanzhang OP @lambdaX999 我 append 的视频中有部分提到,没有完整说明,但是我觉得足够解释了
|
160
dolorain 219 天前
@gongxuanzhang 视频看过了,支持 UP 主
|
161
gongxuanzhang OP @dolorain 感谢支持,不要骂人就好
|