100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace

B-Tree vs LSM-Tree Storage: Which Should You Choose?

Compare B-tree and LSM-tree storage engines — read vs write amplification, real systems, and how to choose for your workload.

hardQ173 of 231 in System Design Est. time: 6 minsLast updated:
Open Code Lab
173 / 231

Expected Interview Answer

B-trees update data in place with balanced, sorted disk pages that favor fast, low-amplification reads, while LSM-trees buffer writes in memory and flush them as immutable sorted files merged later by compaction, favoring high write throughput at the cost of extra read and space amplification, so the right choice depends on whether the workload is read-heavy or write-heavy.

A B-tree stores keys in sorted, fixed-size pages arranged in a balanced tree, and every update finds and rewrites the relevant leaf page in place, which means a point read typically only needs to walk a few pages from root to leaf, giving low, predictable read amplification. The cost is that writes involve random-access page rewrites and possible page splits, which is slower on spinning disks and adds write amplification on flash storage due to how SSDs handle small overwrites. An LSM-tree instead appends every write sequentially to an in-memory buffer and a log, flushing to immutable sorted files and merging them later, which makes writes extremely fast and sequential but means a read may need to check several files, and stale/deleted data lingers until compaction, raising read and space amplification. In practice, B-trees suit read-heavy, transactional workloads like OLTP with strong point-query needs (e.g., PostgreSQL, MySQL InnoDB), while LSM-trees suit write-heavy workloads like logging, metrics, and event ingestion (e.g., Cassandra, RocksDB, HBase) — and some systems even offer both as pluggable storage engines.

  • B-trees give predictable, low-latency point reads and in-place updates for transactional workloads
  • LSM-trees give very high sustained write throughput by converting random writes into sequential I/O
  • Choosing correctly avoids paying unnecessary read or write amplification for the actual workload shape
  • Understanding both lets engineers reason about real systems like InnoDB, RocksDB, and Cassandra by their underlying trade-offs

AI Mentor Explanation

A B-tree is like a fully organized, alphabetized scorecard filing cabinet where updating one player’s entry means walking straight to their exact folder and correcting it in place — quick to look up, but slower to file corrections during a fast-paced match. An LSM-tree is like a scorer scribbling every update on a running scratch pad and only filing a proper cabinet update once an over ends, which keeps up with rapid play but means looking up a player’s latest score might require checking the scratch pad plus several recent filings. A team recording a slow Test match favors the cabinet; a scorer covering a rapid T20 favors the scratch pad.

Step-by-Step Explanation

  1. Step 1

    Characterize the read/write mix

    A workload with far more writes than reads (logging, ingestion) leans LSM-tree; one with frequent point reads and moderate writes (OLTP) leans B-tree.

  2. Step 2

    Consider update pattern

    In-place updates to existing records favor a B-tree; append-heavy, immutable-event workloads favor an LSM-tree.

  3. Step 3

    Weigh amplification trade-offs

    B-trees keep read/space amplification low but pay write amplification on random updates; LSM-trees keep writes cheap but pay read/space amplification until compaction.

  4. Step 4

    Check the engine, not just the database name

    Some databases are pluggable (e.g., MySQL supports InnoDB/B-tree or MyRocks/LSM), so the decision is about storage engine choice, not just product choice.

What Interviewer Expects

  • Correctly frames the trade-off as write-optimized (LSM) vs read-optimized/in-place (B-tree)
  • Explains why B-tree writes are random I/O and LSM writes are sequential
  • Mentions concrete amplification differences: read/space amplification for LSM, write amplification for B-tree on random updates
  • Names real engines: InnoDB/Postgres heap (B-tree) vs RocksDB/Cassandra/HBase (LSM)

Common Mistakes

  • Claiming one is strictly “better” instead of workload-dependent
  • Ignoring compaction and its read/space amplification cost when praising LSM-trees
  • Ignoring page splits and random I/O cost when praising B-trees for writes
  • Not mentioning that some databases offer both as pluggable storage engines

Best Answer (HR Friendly)

B-trees and LSM-trees are two different ways databases organize data on disk. B-trees update records in place, which makes reading data fast and predictable but can slow down under heavy write load. LSM-trees buffer writes and add them in big batches, which makes writing extremely fast but means reads sometimes have to check more than one place. The right choice depends on whether your system does a lot more reading or a lot more writing.

Code Example

Choosing a storage engine by workload (illustrative decision config)
workloads:
  oltp_orders_service:
    read_write_ratio: "9:1"       # read-heavy, point lookups
    engine: btree                 # e.g. PostgreSQL heap+btree, MySQL InnoDB
    rationale: "Low, predictable read amplification for point queries"

  event_ingestion_pipeline:
    read_write_ratio: "1:20"      # write-heavy, append-only events
    engine: lsm_tree               # e.g. RocksDB, Cassandra, HBase
    rationale: "Sequential writes absorb high ingest rate; reads are rare/batched"

  hybrid_analytics_store:
    read_write_ratio: "3:1"
    engine: lsm_tree_with_leveled_compaction
    rationale: "Leveled compaction bounds read amplification for moderate reads"

Follow-up Questions

  • Why does a B-tree page split cause a burst of random writes, and how does that affect write amplification?
  • How does leveled compaction let an LSM-tree approximate B-tree-like read amplification at the cost of more write I/O?
  • What is MyRocks, and why would a team choose it over InnoDB for a MySQL-compatible workload?
  • How would range scans compare between a B-tree and an LSM-tree with sorted SSTables?

MCQ Practice

1. Which storage structure updates data in place and generally gives lower, more predictable read amplification?

B-trees rewrite the relevant leaf page in place, so a point read walks a small, bounded number of pages from root to leaf.

2. Why are LSM-tree writes generally faster than B-tree writes under heavy write load?

LSM-trees convert writes into sequential appends, while B-trees must locate and rewrite (and sometimes split) the specific page for each update.

3. Which pairing correctly matches a real system to its underlying storage structure?

PostgreSQL and InnoDB use B-tree indexes with in-place page updates, while RocksDB (and Cassandra, HBase) are LSM-tree based.

Flash Cards

B-tree strength?Low, predictable read amplification via in-place, balanced sorted pages — great for read-heavy OLTP.

LSM-tree strength?Very high write throughput via sequential appends to memory and log, merged later by compaction.

B-tree weakness?Random-access page rewrites and possible splits make heavy write load slower and add write amplification.

LSM-tree weakness?Reads may check multiple files (read amplification) and stale/deleted data lingers until compaction (space amplification).

1 / 4
173 / 231

Continue Learning

Frequently Asked Questions

21 categories · pick one to explore

Where can I practice technical interview questions for free in India?
SkillVeris offers a free interview questions section with readiness scoring, so you can practice technical interview questions at no cost from anywhere in India or worldwide. Questions span AI/ML, programming, web development, DevOps, cloud and security. Combine them with Code Lab for hands-on coding practice and the AI Mentor for instant explanations whenever an answer confuses you.
How do I prepare for a coding interview if I am a complete beginner?
Start by learning one language well, then practice small problems daily before attempting interview questions. On SkillVeris you can take a free structured programming course with 24–40 lessons, write code in the in-browser Code Lab across 6 languages, and then move to the interview questions bank with readiness scoring to measure how prepared you actually are.
What is interview readiness scoring and how does it work?
Interview readiness scoring measures how prepared you are for a technical interview based on your performance across practice questions. On SkillVeris, as you answer interview questions, your readiness score updates so you can see weak topics before the real interview. It turns vague confidence into a concrete signal, telling you which areas need more revision and which are already strong.
How long does it take to get interview ready for a developer job?
Most beginners need a few months of consistent practice to feel interview ready, though timelines vary with background and daily study time. A practical route is finishing a structured SkillVeris course, which includes 24–40 lessons, module assessments and a final exam at an 80 percent pass mark, then drilling the free interview questions until your readiness score is consistently strong.
What are the most common technical interview topics for freshers?
Freshers are commonly tested on programming fundamentals, data structures, problem solving, databases, and basics of the role's stack such as web development or cloud. SkillVeris covers these through 37 free courses, a glossary of around 2,000 terms for quick definitions, cheat sheets for revision, and interview questions with readiness scoring so you can practise exactly what interviewers usually ask.
Can I practice coding interview prep without installing anything?
Yes, SkillVeris Code Lab runs entirely in your browser, so you can practice coding interview prep without installing compilers or editors. It supports 6 languages across 15 categories of exercises. Pair Code Lab sessions with the interview questions bank and readiness scoring, and you have a complete free preparation setup that works on any machine with an internet connection.
How do I explain technical concepts clearly in an interview?
Practice explaining each concept through a simple analogy first, then add the technical detail, because interviewers value clarity over jargon. SkillVeris teaches with its Learn Through Hobbies method, explaining concepts through cricket, music, gaming, cooking and eight more domains. Learning a topic through an analogy gives you a ready-made, memorable way to explain it when an interviewer asks.
Are there free mock interview resources for software engineers?
SkillVeris provides free interview questions with readiness scoring, which works like a self-paced mock interview you can repeat any time. You answer real-style technical questions, get scored, and see where you stand. The AI Mentor is available 24/7 to explain any answer at Quick, Detailed or Deep-dive depth, acting like an always-available interviewer who never gets tired.
How should I prepare for an AI or machine learning interview?
Cover ML fundamentals, Python, and modern topics like LLMs and RAG, then practise explaining projects clearly. SkillVeris has free AI/ML courses including Python for AI and ML, Large Language Models and Retrieval-Augmented Generation, each with 24–40 lessons and assessments. After finishing, use the interview questions bank and readiness scoring to confirm you can answer under pressure.
What should I revise the night before a technical interview?
Revise concise summaries rather than learning anything new: core definitions, common patterns, and your own project stories. SkillVeris cheat sheets and study notes are built exactly for this kind of quick revision, and the glossary of around 2,000 terms lets you verify any definition fast. A short readiness-score check on the interview questions bank confirms nothing critical is shaky.
How do I prepare for a DevOps interview with no work experience?
Build demonstrable knowledge through structured learning and hands-on practice, since you cannot point to job experience. SkillVeris offers free DevOps, Docker and Kubernetes related courses within its 37-course catalog and a DevOps Engineer learning path. Complete the courses, earn certificates by passing the final exams, then use the interview questions section to rehearse common DevOps scenarios.
Do certificates help in clearing technical interviews?
Certificates alone do not clear interviews, but they signal structured learning and give interviewers a starting point for questions. SkillVeris awards certificates when you pass a course final exam at 80 percent, after 24–40 lessons and module assessments, so the certificate reflects genuine effort. Pair it with practised interview answers and Code Lab projects to make a stronger impression.
How can I improve my problem solving speed for coding interviews?
Speed comes from repetition on progressively harder problems, not from rushing. Practise daily in SkillVeris Code Lab, which offers in-browser coding in 6 languages across 15 categories, and time yourself on interview questions. Review every mistake with the AI Mentor, which explains solutions 24/7 at Quick, Detailed or Deep-dive depth, so each session genuinely improves your pattern recognition.
What questions are asked in a Python technical interview?
Python interviews typically cover data types, functions, comprehensions, OOP, error handling and libraries relevant to the role, such as ML packages for AI positions. SkillVeris interview questions include Python topics, and its free Python for AI and ML course builds the underlying knowledge across 24–40 lessons. Readiness scoring then shows whether your Python answers are interview grade.
How do I handle interview questions I don't know the answer to?
Say what you do know, reason aloud toward an approach, and be honest about the gap, because interviewers value thinking over bluffing. Reduce how often this happens by broadening fundamentals: SkillVeris study notes, cheat sheets and the roughly 2,000-term glossary fill knowledge gaps quickly, and readiness scoring highlights weak areas before an interviewer ever finds them.
Is there a free way to check my interview readiness before applying for jobs?
Yes, SkillVeris interview questions come with readiness scoring, all completely free, so you can measure preparation before applying. Once your score looks solid, browse the SkillVeris Jobs page, which aggregates live roles across India, UK, USA, Germany and Remote with salary and experience filters, and apply knowing your technical preparation has been objectively tested.
How do I prepare for web developer interview questions?
Focus on JavaScript fundamentals, your framework of choice, HTTP basics, and building things you can discuss. SkillVeris offers free web development courses among its 37-course catalog, plus a Full Stack Java Developer learning path. After the courses, drill the interview questions bank, practise coding tasks in Code Lab, and use readiness scoring to verify you cover typical frontend and backend topics.
Can the AI Mentor help me practice interview answers?
Yes, the SkillVeris AI Mentor answers questions 24/7 and can explain any concept at Quick, Detailed or Deep-dive depth, which makes it useful for rehearsing interview explanations. Ask it to clarify a topic, then try explaining it back in your own words. Combined with the interview questions bank and readiness scoring, it becomes a free, always-available practice partner.
What is the best free platform for technical interview prep in 2026?
SkillVeris is a strong free option because it combines structured learning with dedicated interview preparation in one place. You get 37 free courses, interview questions with readiness scoring, an in-browser Code Lab for hands-on practice, cheat sheets and study notes for revision, and a 24/7 AI Mentor. Everything is free, which matters for learners in India and worldwide.
How do I stay calm and confident during a technical interview?
Confidence comes from evidence of preparation, so build that evidence deliberately. Complete a SkillVeris course, pass its final exam at the 80 percent bar, and watch your readiness score climb on the interview questions bank. Knowing you have explained concepts through analogies, coded in Code Lab, and scored well on practice questions gives you genuine, grounded calm on the day.

What Learners Say

Real journeys from the SkillVeris community — swipe for more.

SkillVeris taught me Python through Cricket. Now I’m building real projects and feeling confident!
Arjun S. · B.Tech Student
The best platform for hobby-based learning. Concepts finally stick.
Priya R. · Data Analyst
I went from zero coding to a portfolio of projects — all by learning through my love for gaming. Landed my first internship!
Kabir M. · CS Undergraduate
Trending Topics50 popular tags — tap to explore
Trending CoursesAll 37 free courses — tap to browse