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

Поделиться
HTML-код
  • Опубликовано: 20 ноя 2024

Комментарии • 527

  • @MohitKumar-os3ir
    @MohitKumar-os3ir 4 года назад +310

    You make me intelligent with every video I watch of yours.

    • @codeKarle
      @codeKarle  4 года назад +25

      Thanks!! That makes our day :)
      Do share this with your colleagues and spread the knowledge :)

    • @parimi001
      @parimi001 3 года назад +1

      I agree with you 100%

    • @SaiTeja-ir7yv
      @SaiTeja-ir7yv 2 года назад

      Ture !!

    • @mohammedsardar3779
      @mohammedsardar3779 Год назад +1

      Why no design videos these days?? What happend?

  • @harshalchaudhari8137
    @harshalchaudhari8137 2 года назад +108

    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 Год назад

      Well explained!!

    • @saurabhmidha3609
      @saurabhmidha3609 5 месяцев назад +1

      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 5 месяцев назад +4

      @@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.

  • @manveersingh5822
    @manveersingh5822 2 года назад +5

    I don't know why people are buying gold when by just watching this video you can be rich!
    Sincere gratitude to you Sandeep!

  • @krishnabirla16
    @krishnabirla16 2 года назад +11

    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.

  • @harshavardhan9991
    @harshavardhan9991 4 года назад +12

    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 года назад +1

      are you from AWS :)

    • @harshavardhan9991
      @harshavardhan9991 4 года назад

      Bo Wang No, learning AWS :)

    • @NikhilAdiga
      @NikhilAdiga 2 месяца назад

      Can we use RDS instead of Aurora for a relational database?

  • @amandabarton938
    @amandabarton938 2 года назад +38

    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!!

  • @YashRaithatha1989
    @YashRaithatha1989 3 года назад +54

    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

  • @madhumantichakraborty6579
    @madhumantichakraborty6579 4 года назад +10

    Best video tutorial available on the internet for choosing between databases for designing systems. Period

    • @codeKarle
      @codeKarle  4 года назад

      Thanks for the kind words :)

  • @RandomShowerThoughts
    @RandomShowerThoughts Год назад +1

    this video is an absolute gem. Finally someone that breaks this down directly without dancing around the topic

  • @Sailgodgreenearth
    @Sailgodgreenearth 2 года назад +1

    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.

  • @ramachandraneswaran
    @ramachandraneswaran 3 года назад +6

    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!

  • @rishianands8472
    @rishianands8472 2 года назад +1

    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..

  • @asishkumarsatapathy3466
    @asishkumarsatapathy3466 2 года назад +2

    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.

  • @HarkiratSaluja
    @HarkiratSaluja 3 года назад +4

    Reading this a day before on-site interviews. I am much more confident on the database selection justification :). Thank you

  • @jyotibhatia9238
    @jyotibhatia9238 3 года назад +23

    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 года назад +3

      Thanks Jyoti! Do spread the word about the channel. It motivates to keep making more :)

  • @learn9475
    @learn9475 2 года назад

    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

  • @progfan234
    @progfan234 3 года назад +12

    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.

  • @peterwofford1280
    @peterwofford1280 Год назад +3

    This man needs at least 100K subs. Love this content, extremely concise and informative, I have subbed!

  • @vidhanchandra3997
    @vidhanchandra3997 3 года назад +22

    This is one of the best explanation on choosing db....

  • @deepakmawane4251
    @deepakmawane4251 2 года назад

    This is the best video on this topic on RUclips. This is a confusing topic but you explained in so simple and elegant way. Thankyou! for making this video.

  • @weez8311
    @weez8311 3 года назад

    The clear explanation/flowchart at the end for choosing SQL vs document vs columnar was GOLD

  • @divakarkumaryadav327
    @divakarkumaryadav327 3 года назад +5

    No words to say..the way you've cleared everything.... You should be on RUclips long time before.

  • @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.

  • @rajuhs3086
    @rajuhs3086 2 года назад

    Seedhi Baat.. No Bakwaas.. Excellent short cheat sheet video for choosing right DB.

  • @omishagupta1428
    @omishagupta1428 2 года назад +1

    Really informative. Loved it, coming out burnt from GKCS, that guy always leaves me confused for some reason. This channel is must recommended.

  • @yassirhalim235
    @yassirhalim235 3 года назад +1

    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!

  • @monishchhadwa777
    @monishchhadwa777 9 месяцев назад

    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!

  • @chiragarora7364
    @chiragarora7364 4 года назад +7

    Teaching is very diff from preaching!
    And Sir, you have cleary stated the difference.
    Making someone learn is easy, but making someone understand is what teaching is 👍
    Hoping that your vedios will make a difference 😃

    • @codeKarle
      @codeKarle  4 года назад +1

      Thanks!! That's very good to hear :)
      Hopefully it'll make a difference and reach a lot of people :)

    • @divyanshusingh6473
      @divyanshusingh6473 3 года назад

      @@codeKarle It is making a difference. Dope stuff!

  • @VedMishra
    @VedMishra 3 года назад +1

    Each minute is worth watching... Very logical and concise.

  • @priyanshusingh2454
    @priyanshusingh2454 3 года назад

    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.

  • @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.

  • @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.

  • @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!!

  • @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.

  • @guptsha2nk
    @guptsha2nk 4 года назад +4

    To the point and crisp.... Covered all popular types of DB. Thanks

    • @codeKarle
      @codeKarle  4 года назад

      Glad that you liked it!

  • @staycuriousstayawesome
    @staycuriousstayawesome 8 месяцев назад

    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.

  • @Nexatek
    @Nexatek 3 года назад +2

    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 :)

  • @psk2166
    @psk2166 6 месяцев назад

    Thank you Karle, you have solved my mysterious about databases that has been going thru my head for many years.

  • @shellym5124
    @shellym5124 3 года назад +1

    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.

  • @niharika3608
    @niharika3608 2 года назад

    One of the best System Design videos series on RUclips. Keep up the good work!

  • @gnanasekaranebinezar7199
    @gnanasekaranebinezar7199 3 года назад +10

    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.

  • @shikharsharma6399
    @shikharsharma6399 2 года назад

    The intro part in which you used the explanation of functional and non-functional requirements made me like the video and comment here.

  • @mykytapiskarov7291
    @mykytapiskarov7291 10 месяцев назад

    Good explanation of document DB, you are the first who made me understand the use case!

  • @khandakermushfiqurrahman5117
    @khandakermushfiqurrahman5117 2 года назад

    For cache -> Redis
    For streaming or video data -> blob storage. For example: amazon S3
    For searching: text searching service like elastic search or solr
    Matrics or monitoring type system ->
    Time series database. For example, open tsdb.
    Analysis on data of company or data dump -> data warehouse. For example, hadoop

  • @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!

  • @sarojcs3535
    @sarojcs3535 Год назад

    You have just fulfilled my all queries for interviews.

  • @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.

  • @nehahp477
    @nehahp477 3 года назад +8

    Wow! This explanation is so lucid and logical, yet concise. Summarizing things this well should be considered an art form!

  • @dumbcurious450
    @dumbcurious450 4 года назад

    You are very clear about the content .. one of the best system design video available on RUclips..

  • @divyanshusingh6473
    @divyanshusingh6473 3 года назад +11

    This was just what I needed, gem of a video. Thanks!

  • @zachgoll
    @zachgoll 2 года назад

    Wonderful video! I have been looking for something in depth like this for a very long time!

  • @TheSridharraj
    @TheSridharraj 3 года назад

    I was happy after going through the video. Just one short and clear.

  • @somghos4363
    @somghos4363 Год назад

    Great explanation. One more point to add is also CAP therom need to be consider to choose the DB.

  • @MrManjax
    @MrManjax 2 года назад

    Excellent video talking about key considerations in choosing the "right" DB/ data store. Sincere thanks for your efforts!

  • @sampathreddy024
    @sampathreddy024 3 года назад

    I got lot of knowledge from this video and will watch all you videos in coming days

  • @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!

  • @yuganderkrishansingh3733
    @yuganderkrishansingh3733 3 года назад +1

    Super helpful. More I watch it more clarity I get. Thanks for making this video.

  • @shivangitomar5557
    @shivangitomar5557 3 года назад

    Your videos are pure gold!! Hands down the best system design tutor!!! Thanks a lot!

  • @SiddharthJagtiani
    @SiddharthJagtiani 3 года назад

    One minor error in the video, when you explained the EverIncreasing Data, you used an example of uber getting location information of drivers by using driver id. I think this was a error. The use case here is the client requests for drivers in/around a certain location. So the columnar database will store drivers that are currently in a certain box (in this world), and the client will check which drivers are there in that box. I think that is what you meant.
    And this was a very good video. Thanks.

  • @sushmareddy1370
    @sushmareddy1370 Год назад

    This is awesome, I am amazed that everything you share has so much detail and thought.

  • @rameshn6721
    @rameshn6721 2 года назад

    Amazing explanation of various databases at a breadth. Candid for quick brush up. Thanks

  • @vishalamle8330
    @vishalamle8330 2 года назад

    Perfect cheet sheet for most of the DB formats..!!!
    So beautiful and simple explanation..!!! 👏👏
    Please keep up the great work..!!!

  • @viralmehta2542
    @viralmehta2542 3 года назад

    this guys is best! simple explaination.. easy to digest

  • @emonmukherjee
    @emonmukherjee 3 года назад

    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

  • @hemantyadav5034
    @hemantyadav5034 3 года назад

    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.

  • @nghiapham7238
    @nghiapham7238 3 года назад

    awesome, the video gets to the heart of the matter and doesn't go around.

  • @mostinho7
    @mostinho7 Год назад +1

    Taking note of new info:
    6:05 implementing text search feature, can use implementations provided by lucene, solar (TODO:- investigate these technologies)
    Elastic search is not a db, it’s a search engine so don’t use it as your primary source of truth
    Storing application metrics, throughput latency etc would use time series db. Useful when you’re doing sequential updates (appending metrics) instead of modifying existing records (kind of like a log) examples of time series db: InfluxDB, openTSdb

  • @abhinav8804
    @abhinav8804 2 года назад

    What an amazing explanation for choosing databases. Kudos to you man.

  • @AnkitYadav-rf3uu
    @AnkitYadav-rf3uu 4 года назад +1

    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

  • @manojbgm
    @manojbgm 3 года назад

    I have been looking for this information since long time.
    Thank you for providing the exact detail

  • @gurumoorthysivakolunthu9878
    @gurumoorthysivakolunthu9878 3 месяца назад

    Awesome Explanation... Thank you, Sir... This is ULTIMATE....

  • @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.

  • @shwetakale246
    @shwetakale246 3 года назад

    This video is exactly what I wanted for quick revision. Thank you so much

  • @famouswings
    @famouswings 2 года назад

    HBase is what’s called a wide column database not columnar. Columnar is still a sql like db that has its values stored in a inverted index instead of pages. Wide column is essentially key value value value … an example of columnar is sybase IQ or oracle with columnar compression turn on

  • @vinagnihotri
    @vinagnihotri 2 года назад

    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.

  • @AliRaza-vt3pl
    @AliRaza-vt3pl Год назад

    Bro the way you explain is just Amazing ... Speechless
    Thanks for making it easy to understand

  • @rakeshgupta8901
    @rakeshgupta8901 4 года назад

    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.

  • @gautamtyagi8846
    @gautamtyagi8846 3 года назад +1

    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.

  • @joyceawesome1705
    @joyceawesome1705 3 года назад

    Wonderful! The best free video for choosing database in system design interview. Thanks so much

  • @gopisumanth2928
    @gopisumanth2928 4 месяца назад

    Graph databases, designed to store and manage data in graph structures, offer unique advantages and some challenges compared to traditional relational databases. Here are the general pros and cons of graph databases:
    Pros
    1. Flexible Data Models: Schema-less, Natural Representation
    2. Performance: Efficient Querying, Scalability
    3. Visualization
    Cons
    1. Complexity and Learning Curve
    2. Performance Considerations: Resource Intensive
    Use Cases
    Graph databases are particularly well-suited for:
    - Social networks and recommendation engines
    - Knowledge graphs and semantic search
    - Supply chain and logistics management
    - Bioinformatics and genomics research

  • @vennyroxz
    @vennyroxz 4 года назад +2

    Clear and to the point explanation. Great job! I learned a lot. Thanks.

    • @codeKarle
      @codeKarle  4 года назад

      Glad that it was helpful!

  • @akshayagrawal2222
    @akshayagrawal2222 3 года назад

    one stop explanation on choosing database, well done 👏

  • @zumazumy2257
    @zumazumy2257 2 месяца назад

    One of the best videos ever in this topic
    Thanks

  • @vazzdoin
    @vazzdoin Год назад

    Keep doing the excellent work mate. This was a great video with respect to databases.

  • @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

  • @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

  • @arjunadityarastogi2118
    @arjunadityarastogi2118 2 года назад

    I had a lot of confusions on this, Thank You So Much!

  • @FunWiithAarohi
    @FunWiithAarohi 4 года назад

    I could binge watch your videos forever. such an informative videos

  • @PradeepSingh-vm1gl
    @PradeepSingh-vm1gl 3 года назад

    Love you brother. This video is so much informative. 1 video talks about so many solutions.

  • @taikunliu3441
    @taikunliu3441 4 года назад +1

    Very good summary. Concise and in-depth! thanks..

    • @codeKarle
      @codeKarle  4 года назад

      Thanks!! Glad that you liked it :)

  • @rvs99
    @rvs99 2 года назад

    All things explained straight and to the point. Hats off to you sir🕴🏻

  • @OffbeatTravelVK
    @OffbeatTravelVK 2 года назад

    I have a learnt a lot watching all your videos. Thank you so much sir 🙏🏼🙏🏼🙏🏼🙏🏼🙏🏼

  • @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.

  • @sathyapj5290
    @sathyapj5290 2 года назад

    Great video. Helped me to understand data platform at a high-level. Thank you Sandeep.

  • @swarnimshukla1120
    @swarnimshukla1120 2 года назад

    You explained everything in a very concise way. Keep up doing the good work😊🙏

  • @nguyenhoanvule5755
    @nguyenhoanvule5755 2 года назад

    Thanks a lot, it's very useful for my upcoming System design interview

  • @raghavsood768
    @raghavsood768 2 года назад

    Factors for choice of DB-
    1. Structure of data - Structured or unstructured
    2. Query Pattern
    3. Amount of Scale
    Caching Use Case
    1. Do not want to make multiple calls to DB
    2. Remote call to different service with high latency
    Cache - Key: Value
    Redis - Battle tested, fairly stable
    Memcached
    File Storage - Amazon S3 ; Use Case- Amazon, Netflix
    Blob storage - image, video
    It cannot be queried. You serve a file as it is
    For Blob:
    Amazon S3 primary data store + CDN
    Use Case Text Search Capability with fuzzy search - Netflix, Amazon, Google Maps, Uber
    Text search engine - (Elastic search/ Solr) + Apache lucene: This should not be primary data store (as it can be lost), data can be loaded into this.
    Analytics on Data - Data Warehouse - For offline reporting Hadoop

  • @peterm8461
    @peterm8461 2 года назад

    This is a super valuable video. It's beautiful. Thank you Karle.

  • @pathakutkarsh05
    @pathakutkarsh05 3 года назад

    Just wow! You made such a concise video for such useful information. Thanks a lot.

  • @allthingsnam
    @allthingsnam 8 месяцев назад

    Wow!! Amazing video with great content in a concise manner. Kudos, thank you so much!