Database Design Tips | Choosing the Best Database in a System Design Interview

  Рет қаралды 478,417

codeKarle

codeKarle

Күн бұрын

One of the most important things in a System Design interview is to choose the right Database for the right use case. Here is a cheat sheet that can help you choose the right DB for most of the use cases that you can encounter.
Summary of the video: www.codekarle.com/system-desi...
Author: / sandeep1904
We do over some important topics like which database you should use, in what scenarios, in a System Design Interview. Some comparisons between SQL and NoSQL databases, how to use multiple databases together in a real-world system, etc.
Chapters
0:00 - Intro
1:05 - Things that matter
1:45 - Caching
3:20 - File storage
4:22 - CDN
5:11 - Text search engine
6:30 - Fuzzy text search
8:25 - Timeseries databases
10:11 - Data warehouse / Big Data
11:17 - SQL vs NoSQL
11:24 - Relational DB
14:28 - NoSQL - Document DB
16:28 - NoSQL - Columnar DB
18:23 - If none of these are required
19:03 - Combination of DBs - Amazon case study.
#codekarle #databases #systemdesign #system #design #interview #amazon #faang

Пікірлер: 514
@MohitKumar-os3ir
@MohitKumar-os3ir 4 жыл бұрын
You make me intelligent with every video I watch of yours.
@codeKarle
@codeKarle 4 жыл бұрын
Thanks!! That makes our day :) Do share this with your colleagues and spread the knowledge :)
@parimi001
@parimi001 2 жыл бұрын
I agree with you 100%
@SaiTeja-ir7yv
@SaiTeja-ir7yv Жыл бұрын
Ture !!
@mohammedsardar3779
@mohammedsardar3779 Жыл бұрын
Why no design videos these days?? What happend?
@harshalchaudhari8137
@harshalchaudhari8137 Жыл бұрын
Just in case someone is still confused when to use column based DBs here's a little explaination: Consider a database which has a large volume of data with 100 columns. And your application most of the time just queries only a few columns (let’s say 4-5 columns). Then in case of document DBs or row based DBs (relational Dbs) all data will be loaded row by row in main memory for processing , parsing and other operations. It will be a waste of a lot of effort in loading and processing of unnecessary columns. Column based DBs are used to tackle this problem where a large amount of data is stored in column based fashion so that the application can query only a few columns of large volume of data. - reference: Designing Data-Intensive Applications. by Martin Kleppmann.
@kuldeepchouhan8467
@kuldeepchouhan8467 8 ай бұрын
Well explained!!
@saurabhmidha3609
@saurabhmidha3609 Ай бұрын
But you can also do the same thing in RDBMS. you can easily right a query to get only few columns in the result
@sahasutirtha
@sahasutirtha Ай бұрын
@@saurabhmidha3609 The data in RDBMS is stored row-wise in the disk in sequential blocks whereas in Columnar DB the data is stored column-wise making the query for certain columns simpler as all the column data is present in a singular sequence. Even though we can write a similar query for RDMS they would be inefficient as it would have to go through all the rows to only fetch a few columns' data.
@krishnabirla16
@krishnabirla16 2 жыл бұрын
WOW. Watched so many videos and finally found the gold content. No flashy animations and funky music. Just old school 1-1 explaining with clarity, examples and strong fundamentals. Beauty of online education.
@amandabarton938
@amandabarton938 Жыл бұрын
This has been the most useful 23 mins of System Designs Learning I've come across yet. And this is after I took an 11 hour course... you put it all together for me so much more succinctly. Thank you!!
@marin1419
@marin1419 9 ай бұрын
He's amazing
@manveersingh5822
@manveersingh5822 2 жыл бұрын
I don't know why people are buying gold when by just watching this video you can be rich! Sincere gratitude to you Sandeep!
@madhumantichakraborty6579
@madhumantichakraborty6579 3 жыл бұрын
Best video tutorial available on the internet for choosing between databases for designing systems. Period
@codeKarle
@codeKarle 3 жыл бұрын
Thanks for the kind words :)
@YashRaithatha1989
@YashRaithatha1989 3 жыл бұрын
Thanks for creating such an insightful video. There are few things that I would suggest adding to all the important points that you have mentioned: 1> Write Heavy vs Read Heavy systems is also an important point to consider for database selection. We cannot write scale RDBMS (as generally in RDBMS the write is on the single primary instance). For DocumentDB, we need sharding to write scale it which can be done but are not so natural as it is in ColumnarDB like Cassandra where we need to mandatorily choose the partition key during the data modelling itself. So for write heavy systems I prefer to go with Cassandra if I don't need ACID. For write heavy systems that need ACID we should choose RDBMS with multi master configuration and for that application needs to take care of bifurcating the data to the appropriate master based on the decided key. 2> Graph database for mapping social network type of data.
@shponder9510
@shponder9510 2 жыл бұрын
Can you give examples of Write Heavy systems and Read Heavy Systems and why?
@MakilaBakhtun
@MakilaBakhtun 2 жыл бұрын
@@shponder9510 OLTP vs OLAP
@ambarishhazarnis9531
@ambarishhazarnis9531 Жыл бұрын
@@shponder9510 URL shortener- you will have more reads than writes. may be 100:1 ratio of reads to writes
@harshavardhan9991
@harshavardhan9991 4 жыл бұрын
Those who prefer AWS Managed Services. Here, is the list Blob Storage : AWS S3 Caching : AWS ElasticCache Full Text Searching : AWS ElasticSearch Time Series Database : AWS TimeStream Analytical Databases : AWS Redshift ( It depends, sometimes we can use AWS S3 for storing large csv files and then we can use AWS ElasticMapReduce(EMR) to process S3 Files) RDMS (Relational Databse) : AWS Aurora Document Database : AWS DynamoDB Columnar Database : Not sure, I think AWS DynamoDB will satisfy this requirement too.
@bowang1825
@bowang1825 4 жыл бұрын
are you from AWS :)
@harshavardhan9991
@harshavardhan9991 4 жыл бұрын
Bo Wang No, learning AWS :)
@ramachandraneswaran
@ramachandraneswaran 3 жыл бұрын
As someone with only monolithic embedded systems experience, this is hands down the only resource on the internet that made sense to me in this domain. Heartfelt thanks!
@gautamtyagi8846
@gautamtyagi8846 3 жыл бұрын
THANKS A TON for making things amazingly simple to understand. Great stuff indeed! I have watched all your videos on system design, they are so nicely presented and organised. Awaiting the next videos.
@dikshantmalik544
@dikshantmalik544 2 жыл бұрын
I had been struggling with starting Databases to build my conceptual knowledge and this is amazing for everyone. Thanks a lot for sharing this in the most simplistic way.
@RandomShowerThoughts
@RandomShowerThoughts Жыл бұрын
this video is an absolute gem. Finally someone that breaks this down directly without dancing around the topic
@progfan234
@progfan234 2 жыл бұрын
Thanks for the video. It's worth stressing on is the consistency aspect of databases. RDBMS's provide strong consistency, whereas a NoSQL like Casandra provides eventual consistency, but higher availability owing to its masterless model, and thus lack of a single point of failure. HBase, on the other hand, is a single-leader system with a single-point of failure.
@RiteshSingh-uz2qs
@RiteshSingh-uz2qs 2 жыл бұрын
Best video I have watched which summarizes it so simply. The best part of this is he explains it by taking examples of products such as Amazon, Netflix etc.
@divyanshusingh6473
@divyanshusingh6473 3 жыл бұрын
This was just what I needed, gem of a video. Thanks!
@shellym5124
@shellym5124 3 жыл бұрын
Cool and crisp details relevant to the topic. Very few people are gifted with the skill to share the knowledge and also create an impact. I came across this channel and now I'll be watching the whole series in coming days.
@asishkumarsatapathy3466
@asishkumarsatapathy3466 Жыл бұрын
Your videos are a life saver for me. I have recently joined an organisation as senior developer and i have been given few system design tasks. And going through your videos is enabling me to understand the intricacies of the system design.
@shashijais789
@shashijais789 2 жыл бұрын
Your videos are very simple to understand. I would like to thank you for explaining the FR and non-FR for each system design consideration. That sets the expectation very well.
@vidhanchandra3997
@vidhanchandra3997 3 жыл бұрын
This is one of the best explanation on choosing db....
@HarkiratSaluja
@HarkiratSaluja 3 жыл бұрын
Reading this a day before on-site interviews. I am much more confident on the database selection justification :). Thank you
@divakarkumaryadav327
@divakarkumaryadav327 3 жыл бұрын
No words to say..the way you've cleared everything.... You should be on KZfaq long time before.
@peterwofford1280
@peterwofford1280 7 ай бұрын
This man needs at least 100K subs. Love this content, extremely concise and informative, I have subbed!
@AnkitYadav-rf3uu
@AnkitYadav-rf3uu 3 жыл бұрын
Awesome !! That's exactly what we require in a DB design rounds , in more depth though , but this was a very good intro in that direction
@TheDeepsz
@TheDeepsz 3 жыл бұрын
Such an amazing video! I am glad I came across your channel. This is very informative and you have a knack for explaining things well! Keep up the good work :)
@akshayvarma7507
@akshayvarma7507 3 жыл бұрын
This channel should really have lot of subscribers. This is the first channel where I found so much detailed explanation on system design. Thanks a lot.
@weez8311
@weez8311 3 жыл бұрын
The clear explanation/flowchart at the end for choosing SQL vs document vs columnar was GOLD
@MrManjax
@MrManjax 2 жыл бұрын
Excellent video talking about key considerations in choosing the "right" DB/ data store. Sincere thanks for your efforts!
@emonmukherjee
@emonmukherjee 2 жыл бұрын
I have always wished for a video like this! Since, I am non-CS background, I am a bit oblivious to the world of DB products out there. I had always heard many of these names, but only as lingo - never really understood why they were being mentioned in the context. Thank you for putting this together, I will now probably understand more future such discussions in life :D
@learn9475
@learn9475 Жыл бұрын
literally no words i was struggling to find a perfect video which explains in every possible perception (user, developer, maintainer) this made all the doubts cleared ... thank you
@niharika3608
@niharika3608 2 жыл бұрын
One of the best System Design videos series on KZfaq. Keep up the good work!
@jyotibhatia9238
@jyotibhatia9238 3 жыл бұрын
Sandeep: I must say that you have the gift of explaining complex concepts in a very simple way, this is rare to find in today's days. Your clarity in explaining the fundas is great and makes me learn so much more. Please continue sharing your knowledge thereby helping learners across the globe! Thank you for sharing this and best of luck to you on this journey!
@codeKarle
@codeKarle 3 жыл бұрын
Thanks Jyoti! Do spread the word about the channel. It motivates to keep making more :)
@deepakmawane4251
@deepakmawane4251 Жыл бұрын
This is the best video on this topic on KZfaq. This is a confusing topic but you explained in so simple and elegant way. Thankyou! for making this video.
@aryanchauhan6671
@aryanchauhan6671 Жыл бұрын
Bro, this is just soooo good. You summarised so many important topics of software development concisely in some minutes with awesome explanation. Hats off to you. first time watching your video and i have become a fan. Thanks for the great content!
@jasper5016
@jasper5016 2 жыл бұрын
Brother, this is the best video I have ever seen on System Design (Databases). Thanks for sharing all this knowledge. Kudos to you!!
@gnanasekaranebinezar7199
@gnanasekaranebinezar7199 3 жыл бұрын
Wow !!! What clarity in explaining Database use cases, scenerios, categories of database with pictorial representation. The way you explained the concept is quite impressive. The way you corelate the concept with example is best fit. Keep the good work. May your light shine upon people like me the beneficiary. Thanks.
@rishianands8472
@rishianands8472 2 жыл бұрын
I like the way you present.. you look like a humble human being with lots of knowledge and work experience... please continue your good work..
@shivangitomar5557
@shivangitomar5557 2 жыл бұрын
Your videos are pure gold!! Hands down the best system design tutor!!! Thanks a lot!
@yashpalgandhi4108
@yashpalgandhi4108 3 жыл бұрын
Every video i watch, I click like. Complex system design problems are explained in very simple way. Keep it up and make more such videos. Thanks a lot!
@omishagupta1428
@omishagupta1428 Жыл бұрын
Really informative. Loved it, coming out burnt from GKCS, that guy always leaves me confused for some reason. This channel is must recommended.
@ayushgupta5587
@ayushgupta5587 3 жыл бұрын
Well explained and informative. works well as a cheat sheet with clear overview, leaving to us to get in depth wherever needed.
@vishalamle8330
@vishalamle8330 2 жыл бұрын
Perfect cheet sheet for most of the DB formats..!!! So beautiful and simple explanation..!!! 👏👏 Please keep up the great work..!!!
@VedMishra
@VedMishra 2 жыл бұрын
Each minute is worth watching... Very logical and concise.
@rameshn6721
@rameshn6721 Жыл бұрын
Amazing explanation of various databases at a breadth. Candid for quick brush up. Thanks
@psk2166
@psk2166 2 ай бұрын
Thank you Karle, you have solved my mysterious about databases that has been going thru my head for many years.
@manojbgm
@manojbgm 2 жыл бұрын
I have been looking for this information since long time. Thank you for providing the exact detail
@pankajjain
@pankajjain 3 жыл бұрын
You have great communication ability and explain things crisply. Thank you.
@Nexatek
@Nexatek 3 жыл бұрын
Awesome content dude. I ensure I watch all the ads during the video and click on all of them because I don't know how else I can give back to you for the invaluable knowledge you share with us!
@codeKarle
@codeKarle 3 жыл бұрын
Thanks Abhijit! Just spread the word about the channel amongst your friends / LinkedIn connections and that would be amazing :)
@aparajitasengupta5558
@aparajitasengupta5558 3 жыл бұрын
thank you ! This video cleared up so many concepts for me. Keep making these amazing videos
@hemantyadav5034
@hemantyadav5034 2 жыл бұрын
Really an awesome video. After seeing your one design video, I am on system design spree as if I want to finish the Netflix series. Every sentence you speak make to note it down in my notes. Thanks for all of it. One last thing, please whenever you time, keep the momentum of your system design input through videos.
@shwetakale246
@shwetakale246 3 жыл бұрын
This video is exactly what I wanted for quick revision. Thank you so much
@yuganderkrishansingh3733
@yuganderkrishansingh3733 3 жыл бұрын
Super helpful. More I watch it more clarity I get. Thanks for making this video.
@adishjain7351
@adishjain7351 3 жыл бұрын
Amazing Video. This is an absolute precise explanation for this topic. Thanks !!
@vazzdoin
@vazzdoin Жыл бұрын
Keep doing the excellent work mate. This was a great video with respect to databases.
@staycuriousstayawesome
@staycuriousstayawesome 4 ай бұрын
Oh my God! I didn't know this kind of content is also available on the net and that too is free with so many details explained beautifully and concisely. Subscribed and gonna share it with others. Thanks again for putting so much effort for the learners like us.
@joyceawesome1705
@joyceawesome1705 3 жыл бұрын
Wonderful! The best free video for choosing database in system design interview. Thanks so much
@monishchhadwa777
@monishchhadwa777 5 ай бұрын
Thank you so much for such a precise cheat sheet. You also cleared a lot of concepts for me which were fuzzy in spite of my 8.6 years of work experience!
@guptsha2nk
@guptsha2nk 4 жыл бұрын
To the point and crisp.... Covered all popular types of DB. Thanks
@codeKarle
@codeKarle 4 жыл бұрын
Glad that you liked it!
@abhinav8804
@abhinav8804 Жыл бұрын
What an amazing explanation for choosing databases. Kudos to you man.
@rutwickgangurde3247
@rutwickgangurde3247 2 жыл бұрын
This is a very good video, something no one has done. So many terms I hear on a day to day basis but didn't know, are clear now.
@ravijagtap1984
@ravijagtap1984 3 жыл бұрын
I could binge watch your videos forever. such an informative videos
@sushmareddy1370
@sushmareddy1370 8 ай бұрын
This is awesome, I am amazed that everything you share has so much detail and thought.
@zachgoll
@zachgoll Жыл бұрын
Wonderful video! I have been looking for something in depth like this for a very long time!
@vinagnihotri
@vinagnihotri Жыл бұрын
This is a perfect learning video, thank you. I found it very useful how you associated real world examples with type of db. Info about use of combination of database is also lot of helpful understanding how real world system might be using them.
@joelcruz2873
@joelcruz2873 3 жыл бұрын
I'm only 4 minutes in and I've already learned a lot! Keep it up!
@mykytapiskarov7291
@mykytapiskarov7291 6 ай бұрын
Good explanation of document DB, you are the first who made me understand the use case!
@yassirhalim235
@yassirhalim235 3 жыл бұрын
What a very dense video! I took 3 pages of notes. The database world is much clearer for me. Thanks a lot!
@codeKarle
@codeKarle 3 жыл бұрын
Wow. That's good to hear!
@PradeepSingh-vm1gl
@PradeepSingh-vm1gl 3 жыл бұрын
Love you brother. This video is so much informative. 1 video talks about so many solutions.
@pathakutkarsh05
@pathakutkarsh05 3 жыл бұрын
Just wow! You made such a concise video for such useful information. Thanks a lot.
@GauravSharma-rx7pl
@GauravSharma-rx7pl 3 жыл бұрын
This is gem!! Thanks for such amazing content.
@nshettys
@nshettys 3 жыл бұрын
As usual, you are just brilliant!!! Fantastic
@Muetsii
@Muetsii 3 жыл бұрын
OMG, I didn't know shit about no-SQL and just with this video I think I can propose the adequate database type in an exercise. Amazing, specially loved the way to combine databases. Thank you so much.
@chillbro2275
@chillbro2275 2 жыл бұрын
Eye opening. And you introduced me to time sequence databases. Thank you so very much. I would like to know about HBase at a beginner level.
@TheSridharraj
@TheSridharraj 2 жыл бұрын
I was happy after going through the video. Just one short and clear.
@pathakshardul
@pathakshardul 3 жыл бұрын
Hi, Your channel has some excellent in depth content and is really helpful for preparations. I have a question regarding relational databases. When it comes to sharding relational tables, can you use consistent hashing? If yes, where/which products? If no, how do you take care of issues such as data imbalance and hot partitions? Thank you!
@PokriPoki
@PokriPoki 3 жыл бұрын
Hi Karl - great job with these videos! Keep uo the good work
@rajuhs3086
@rajuhs3086 2 жыл бұрын
Seedhi Baat.. No Bakwaas.. Excellent short cheat sheet video for choosing right DB.
@sumitbabel5415
@sumitbabel5415 3 жыл бұрын
Your explanation is very clear and to the point . Thanks a lot for contributing to the world of education . hats off Amazing explanation honestly
@coolvipool
@coolvipool 3 жыл бұрын
Great content. Gave me so many decision making capabilities. Please keep posting such good contents.
@priyanshusingh2454
@priyanshusingh2454 2 жыл бұрын
Really amazing playlist. I wonder why you don't have subscribers in lakhs. I have a final interview for SDE-I at a unicorn startup in 4 days and this is a life saver.
@sarojcs3535
@sarojcs3535 Жыл бұрын
You have just fulfilled my all queries for interviews.
@user-vq6yi7se2r
@user-vq6yi7se2r 3 жыл бұрын
Great Man! Nice way of explaining. Kudos to your thoughts!
@kmurali08
@kmurali08 2 жыл бұрын
Excellent video with precise information. Kudos and keep them coming. 🙏🏼🙏🏼
@pratikjain4704
@pratikjain4704 3 жыл бұрын
This is very good, please keep adding more interviews.
@semperfiArs
@semperfiArs 2 жыл бұрын
Thanks a lot for these videos. Big fan of such videos. Make sure you post more videos. Keep up your good work guys
@swarnimshukla1120
@swarnimshukla1120 Жыл бұрын
You explained everything in a very concise way. Keep up doing the good work😊🙏
@pkr619
@pkr619 3 жыл бұрын
Amazing video, one feedback, please keep it at the top of the series, before the beginning of the design discussion of other systems.
@rakeshgupta8901
@rakeshgupta8901 3 жыл бұрын
I was searching your Medium blog post for some good detailed explanation, I can say , one of best explanation so for, I am going with watch all of video.
@RachnaDiary
@RachnaDiary 3 жыл бұрын
Ton of thanks to make your videos very effort able. hard to types in words how much valuable information you just told in this video, till now I always get confuse about all these DB as mostly worked at front side but now I can speak flawless about on it if anyone ask. Plz Plz also make videos on Networking and OS soon. It will really helps millions of ppl who r giving an interviews or have any doubt. Heads off to you again.
@nghiapham7238
@nghiapham7238 2 жыл бұрын
awesome, the video gets to the heart of the matter and doesn't go around.
@vennyroxz
@vennyroxz 4 жыл бұрын
Clear and to the point explanation. Great job! I learned a lot. Thanks.
@codeKarle
@codeKarle 4 жыл бұрын
Glad that it was helpful!
@nehahp477
@nehahp477 3 жыл бұрын
Wow! This explanation is so lucid and logical, yet concise. Summarizing things this well should be considered an art form!
@sanjeet8282
@sanjeet8282 2 жыл бұрын
Great video, I would appreciate if you help to know what other characteristics could be when choosing a relational database like OLTP performance etc. capability of handling number of transaction and what should be keep in mind when giving one a thumbs up over other
@TripMan25
@TripMan25 3 жыл бұрын
Amazing video, very professional and well described !
@rvs99
@rvs99 Жыл бұрын
All things explained straight and to the point. Hats off to you sir🕴🏻
@vaibhavsood12
@vaibhavsood12 3 жыл бұрын
Nice video! Was looking for quick cheet-sheet type info for system design interviews and this answers a lot of questions, very few videos out there which break down the DB selection process systematically and concisely the way you have done. Would also suggest if you could touch on other cases like if data is unstructured but you need ACID properties (not sure if that is even possible but if you could update the flowchart to cover yes/no paths for all blocks)
@abhaywaterloo
@abhaywaterloo 2 жыл бұрын
Martin Fowler in his talk on NoSql says, Graph NoSql DBs do give ACID (they have to because they split your data even more than RDBMSs do) . For other NoSql DBs types (Columnar, KeyValue and Document), he calls them "Aggregate type DBs". It means you store an entire aggregate in one record. Eg. If we are storing Amazon product catalog in Mongo, a single document will be the aggregate (basically that single document contains all the fields needed for that one product) . Hence when you need to update a single document ... its automatically atomic etc.. (all of ACID ). Hence in the "aggregate DB types" you should not store your data with relations but should store all data for 1 entity in a single document.
@pritishudgata2901
@pritishudgata2901 3 жыл бұрын
Your explanation are to the point and very informative !! Keep making videos.
@namooman6447
@namooman6447 3 жыл бұрын
Amazing stuff Sandeep. Thanks a ton !!!
@arjunadityarastogi2118
@arjunadityarastogi2118 Жыл бұрын
I had a lot of confusions on this, Thank You So Much!
@dumbcurious450
@dumbcurious450 3 жыл бұрын
You are very clear about the content .. one of the best system design video available on KZfaq..
@codeKarle
@codeKarle 3 жыл бұрын
Thanks Uday!
@bryanenglish7841
@bryanenglish7841 2 жыл бұрын
Wow, this is very well done! Filled a lot of holes in my knowledge.
Choosing a Database for Systems Design: All you need to know in one video
23:58
Русалка
01:00
История одного вокалиста
Рет қаралды 6 МЛН
Clowns abuse children#Short #Officer Rabbit #angel
00:51
兔子警官
Рет қаралды 72 МЛН
System Design Interview: Design Amazon Prime Video
26:53
Exponent
Рет қаралды 86 М.
What is a Vector Database?
8:12
IBM Technology
Рет қаралды 63 М.
How To Choose The Right Database?
6:58
ByteByteGo
Рет қаралды 295 М.
Google system design interview: Design Spotify (with ex-Google EM)
42:13
IGotAnOffer: Engineering
Рет қаралды 1 МЛН
Русалка
01:00
История одного вокалиста
Рет қаралды 6 МЛН