$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
About the problem of DBMS choice & what to do i...
Search
Minsk MongoDB User Group
June 07, 2012
Programming
3
120
About the problem of DBMS choice & what to do if you have gone the wrong way | Roman Bugaev
Roman Bugaev
Meetup #4
Minsk MongoDB User Group
June 07, 2012
Tweet
Share
More Decks by Minsk MongoDB User Group
See All by Minsk MongoDB User Group
MongoDB by Chef | Yauhen Artsiukhou
bymongo
0
130
MongoDB at IronMQ | Alexander Kolesen
bymongo
0
850
Scaling MongoDB | Sergey Gavruk
bymongo
2
180
Event sourcing + CQRS + MongoDB | Alex Shkor
bymongo
1
650
How it works. Indexes | Kirill Duborenko
bymongo
5
290
Aggregation Framework | Mikhail Burtylev
bymongo
1
110
MongoDB 2.2: Release update + Roadmap | Alvin Richards
bymongo
1
100
Meetup#6 Intro | Alex Litvinok
bymongo
1
53
Deploying MongoDB on Amazon WS | Michael Karpitsky
bymongo
2
120
Other Decks in Programming
See All in Programming
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
3k
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
120
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
120
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
6
2.1k
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
150
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
5.5k
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
210
WebRTC と Rust と8K 60fps
tnoho
2
2k
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
320
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.8k
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
260
AIコーディングエージェント(skywork)
kondai24
0
160
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
141
7.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
KATA
mclloyd
PRO
32
15k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
GraphQLとの向き合い方2022年版
quramy
50
14k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Done Done
chrislema
186
16k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
A designer walks into a library…
pauljervisheath
210
24k
Transcript
Bugaev Roman About the problem of DBMS choice & what
to do if you have gone the wrong way
.NET web-‐‑developer
SQL or NoSQL, that is the question!
Ñ Learning management system Ñ SCORM Ñ 1 million active users CyberU
Ñ No transactions Ñ No relations Ñ No datatypes (some) SimpleDB
Key → ALribute → Value select count(*) from cyberu_users where
RecordType = 'user'
Prons & Cons
Ñ Everything is indexed Ñ Distributed Ñ Replicated Ñ Completely hosted on Amazon system
BUT Ñ Latency specially if you’re not on ec2 (even between nodes) Ñ Only strings, lexicographical string only Ñ Huge amount of code
Ñ If you love writing code-‐‑-‐‑ really, truly love to
write code-‐‑-‐‑ you'ʹll love it enough to write as liLle of it as possible. And SQL can help you.
SQL is awesome! -‐‑ Structured Query Language -‐‑ ACID Atomicity,
Consistency, Isolation, Durability -‐‑ Predictable -‐‑ Schema -‐‑ Based on rational algebra -‐‑ Standardized
No, really, it'ʹs awesome! -‐‑ Hardened -‐‑ Free and commercial
choices -‐‑ MySQL, PostgreSQL, Oracle, DB2, MS SQL... -‐‑ Commercial support -‐‑ Tooling -‐‑ Everyone knows it -‐‑ It'ʹs mature!
None
Sellerhit
So... -‐‑ Some preLy big and important problems -‐‑
And brightest engineers in the world -‐‑ Who loooove to build stuff
Yesterday'ʹs problem of biggest guys Is today'ʹs
problem of startup in garage
Ñ What schema can be fine for a lot of
product’s types? E-‐‑commerce
Books
Music
Jeans
Ñ Flexible (and sane) Ñ Searchable Ñ Easy to use Ñ Fast MongoDB
Ñ Atomic single document writes Ó If you need atomic writes across
multi-‐‑document – don’t use MongoDB And what about $$?
Ñ Orders, Inventory (id, count) and Payment Transaction you
can store in SQL Ñ UI – MongoDB, ecomerce -‐‑ SQL Most boring SQL Scheme ever
Ñ Double check you choice of DBMS and tools
Ñ Do it fast Ñ Check your logic Ñ Enterprise design Ñ Id<User> != Id<Product> Ñ Unit tests Ñ Delete code Ñ Optimize your tools Ñ Be brave! Data migrations
Use case – first, DB – last © Anonymous
Neo4J – Graph database
{ Thx! Q? Bugaev Roman, @rbugaev