12
返回列表 发新帖
楼主: sntfinish
跳转到指定楼层
上一主题 下一主题
收起左侧

[找工就业] system design SQL vs NoSQL

🔗
happynemo 2022-1-10 16:19:33 | 只看该作者
全局:
先回答几个问题。

“如果需要 sharding, 可以自己手动 sharding”。这个最好在设计中加上monitor,回答什么时候做sharding的问题。而且实际上在prod中做sharding没有那么容易。. From 1point 3acres bbs

“所以我说完 tradeoff 后,可以说 "看组里爱用啥" 么”。你可以说如果组里的已经有使用的数据库,用新的数据库会带来额外的set up和组员training的开销。如果差别不是特别明显的话,可以使用已有的数据库。
. check 1point3acres for more.
说一下自己的粗浅理解。

极端场景下的选择比较明确。比如系统需要做OLAP,需要执行ad hoc query,这些都是典型的需要使用SQL的场景。超大流量的OLTP系统,需要执行的transaction和query有限而且明确定义,典型的NoSQL。. 1point 3 acres

需要注意的是,现在SQL在很多场景下也有很好的实时性和扩展性,有的NoSQL(比如DynamoDB),也支持一定程度的ACID。所以泛泛的说NoSQL用于实时应用,能scale,是不行的。 ..

有的数据会天然适合某一类数据库。比如金融数据需要强一致性,通常用SQL。NoSQL的ACID相对传统数据库比较有限制,会不太够用,或者用起来很复杂。如果数据关系是图,那显然用graph database最合适。不需要强一致性的数据,例如social media,或者数据scheme不清楚,或者预计需求会有很大变化,用NoSQL可能是个不错的选择。

很多非极端场景是两者都可以的,其实没有对错。我的建议是用你熟悉的系统,讲清楚你为什么这么设计,以及怎么monitor,怎么scale等更重要。如果你用自己不熟悉的系统,可能面试官多问两句就答不上来了。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表