跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 大家企业实际生产中数据库都如何配置?
未分類
17 1 月 2021

大家企业实际生产中数据库都如何配置?

大家企业实际生产中数据库都如何配置?

資深大佬 : RedBlackTree 2

是否 autocommit,隔离级别是 Read Uncommit 还是 Repeatable Read ?
上次去面试人家问我,说隔离级别,我就说了自己理解的 RR,select 过程加读锁,其他事务没法加写锁,避免其他事务修改我们 select 的记录。对面就笑了:单单 select 就会加锁吗?你确定?我说理论上是这样的,实际中 Innodb 通过 MVCC 来避免加锁。
然后就是一段时间的争执,对方认为 select 不会加锁,我也就重复自己的观点。
然后对方问我之前公司用的隔离级别是什么,我说默认的 RR 。问到幻读,说你们是怎么解决幻读的。我就卡壳了,没遇到过啊,Innodb 不是不会幻读吗。最后驴唇不对马嘴地扯了半天,说可以借鉴 MVCC 自己添加版本字段,各个事务只操作自己版本的记录。最后才明白对方想得到 select for update 的答案。
后来又翻了技术内幕那本书,才发现 innodb 在 RR 级别下才会用 Next-key lock 解决幻读,而 RC 级别下只有行锁,所以会有幻读。
自己确实缺少实操经验,所以想问问大家实际生产环境中数据库怎么设置的。
大佬有話說 (3)

  • 資深大佬 : xuanbg

    默认配置

  • 資深大佬 : louettagfh

    1. select 是否加锁要看是什么类型的 select 语句:
    * 快照读不需要加锁, MVCC 的 undo log 能保证读到正确的数据.
    * shard mode 加 s 锁.
    * for update 加 x 锁.

    2. InnoDB 使用 Next-key Lock 解决了 RR 部分场景下的幻读,也不是完全的避免幻读.

  • 資深大佬 : yzbythesea

    有一说一还是 nosql 简单。sql 这种就应该在生产服务上淘汰。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具