Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
120
MongoDB at IronMQ | Alexander Kolesen
bymongo
0
840
Scaling MongoDB | Sergey Gavruk
bymongo
2
170
Event sourcing + CQRS + MongoDB | Alex Shkor
bymongo
1
640
How it works. Indexes | Kirill Duborenko
bymongo
5
270
Aggregation Framework | Mikhail Burtylev
bymongo
1
92
MongoDB 2.2: Release update + Roadmap | Alvin Richards
bymongo
1
90
Meetup#6 Intro | Alex Litvinok
bymongo
1
44
Deploying MongoDB on Amazon WS | Michael Karpitsky
bymongo
2
110
Other Decks in Programming
See All in Programming
[Do iOS '24] Ship your app on a Friday...and enjoy your weekend!
polpielladev
0
110
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
630
Modular Monolith Monorepo ~シンプルさを保ちながらmonorepoのメリットを最大化する~
yuisakamoto
5
330
よくできたテンプレート言語として TypeScript + JSX を利用する試み / Using TypeScript + JSX outside of Web Frontend #TSKaigiKansai
izumin5210
6
1.8k
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
350
距離関数を極める! / SESSIONS 2024
gam0022
0
290
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
340
イマのCSSでできる インタラクション最前線 + CSS最新情報
clockmaker
4
760
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
950
watsonx.ai Dojo #4 生成AIを使ったアプリ開発、応用編
oniak3ibm
PRO
1
180
Micro Frontends Unmasked Opportunities, Challenges, Alternatives
manfredsteyer
PRO
0
110
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Rails Girls Zürich Keynote
gr2m
94
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Unsuck your backbone
ammeep
668
57k
Scaling GitHub
holman
458
140k
Become a Pro
speakerdeck
PRO
25
5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
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