Bird
Raised Fist0
HLDsystem_design~5 mins

Horizontal vs vertical partitioning in HLD - Quick Revision & Key Differences

Choose your learning style10 modes available
Recall & Review
beginner
What is horizontal partitioning in database design?
Horizontal partitioning means splitting a table into multiple tables where each table holds a subset of rows. Think of it like dividing a guest list by last name ranges.
Click to reveal answer
beginner
What is vertical partitioning in database design?
Vertical partitioning means splitting a table into multiple tables where each table holds a subset of columns. Imagine separating a contact list into one table for names and another for phone numbers.
Click to reveal answer
intermediate
Which partitioning method improves query performance by reducing the number of columns scanned?
Vertical partitioning improves query performance by limiting the columns scanned, making queries faster when only some columns are needed.
Click to reveal answer
intermediate
How does horizontal partitioning help with scaling databases?
Horizontal partitioning helps scaling by distributing rows across multiple servers or disks, allowing parallel processing and reducing load on any single server.
Click to reveal answer
beginner
Give a real-life example to explain horizontal partitioning.
Imagine a library splitting its books by genre into different shelves. Each shelf holds a subset of books (rows), which is like horizontal partitioning.
Click to reveal answer
What does horizontal partitioning split in a database?
AIndexes
BColumns
CRows
DDatabases
Vertical partitioning is best used when:
AYou want to split data by columns
BYou want to archive old data
CYou want to replicate data
DYou want to split data by rows
Which partitioning method can improve query speed by reducing data scanned?
AHorizontal partitioning
BVertical partitioning
CBoth equally
DNeither
Horizontal partitioning helps with:
AReducing columns in a table
BNormalizing data
CEncrypting data
DDistributing rows across servers
Which is an example of vertical partitioning?
ASplitting customer data into personal info and purchase history tables
BSplitting customer data by region
CBacking up data to another server
DSharding data by user ID
Explain the difference between horizontal and vertical partitioning with simple examples.
Think about dividing a spreadsheet by rows vs columns.
You got /4 concepts.
    Describe how horizontal and vertical partitioning can help improve database performance and scalability.
    Consider what happens when you only need some data or want to share load.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which of the following best describes horizontal partitioning in system design?
      easy
      A. Combining multiple tables into one large table
      B. Splitting a database table into multiple tables by columns
      C. Splitting a database table into multiple tables by rows
      D. Duplicating the entire database for backup

      Solution

      1. Step 1: Understand horizontal partitioning

        Horizontal partitioning means dividing data by rows, so each partition holds a subset of rows.
      2. Step 2: Compare with other options

        Vertical partitioning splits by columns, combining tables merges data, and duplication is for backup, not partitioning.
      3. Final Answer:

        Splitting a database table into multiple tables by rows -> Option C
      4. Quick Check:

        Horizontal partitioning = splitting by rows [OK]
      Hint: Rows split = horizontal, columns split = vertical [OK]
      Common Mistakes:
      • Confusing horizontal with vertical partitioning
      • Thinking partitioning means duplicating data
      • Mixing partitioning with database backup
      2. Which syntax correctly describes vertical partitioning?
      easy
      A. Splitting data by rows into multiple tables
      B. Splitting data by columns into multiple tables
      C. Merging rows from different tables
      D. Backing up the entire database

      Solution

      1. Step 1: Define vertical partitioning

        Vertical partitioning splits a table by columns, separating attributes into different tables.
      2. Step 2: Eliminate incorrect options

        Options about rows, merging, or backup do not describe vertical partitioning.
      3. Final Answer:

        Splitting data by columns into multiple tables -> Option B
      4. Quick Check:

        Vertical partitioning = splitting by columns [OK]
      Hint: Columns split = vertical partitioning [OK]
      Common Mistakes:
      • Confusing vertical with horizontal partitioning
      • Assuming partitioning means merging tables
      • Mixing partitioning with backup processes
      3. Consider a user database table with columns: id, name, email, password, address. If we apply vertical partitioning by splitting sensitive data into a separate table, which of the following is a valid partition?
      medium
      A. Table 1: id, password; Table 2: name, email, address
      B. Table 1: id, name; Table 2: email, password, address
      C. Table 1: id, name, password; Table 2: email, address
      D. Table 1: id, name, email; Table 2: id, password, address

      Solution

      1. Step 1: Identify sensitive data columns

        Password and address are sensitive, so they should be separated from general info.
      2. Step 2: Check partitioning by columns

        Table 1: id, name, email; Table 2: id, password, address separates password and address into one table, and id, name, email into another, matching vertical partitioning.
      3. Final Answer:

        Table 1: id, name, email; Table 2: id, password, address -> Option D
      4. Quick Check:

        Vertical partitioning splits columns, sensitive data separated [OK]
      Hint: Sensitive columns go to separate table in vertical partitioning [OK]
      Common Mistakes:
      • Mixing rows and columns in partitioning
      • Not separating sensitive data properly
      • Splitting columns unevenly without reason
      4. A system uses horizontal partitioning by user region but experiences slow queries on user emails. What is the likely cause and fix?
      medium
      A. Cause: Partitioning by rows only; Fix: Add vertical partitioning to separate email column
      B. Cause: Partitioning by columns only; Fix: Add horizontal partitioning by region
      C. Cause: No partitioning; Fix: Add horizontal partitioning by email
      D. Cause: Too many partitions; Fix: Merge all partitions into one

      Solution

      1. Step 1: Analyze the problem

        Horizontal partitioning splits by rows (region), but email queries are slow because email column is not separated.
      2. Step 2: Suggest fix

        Adding vertical partitioning to separate email column improves query speed on emails.
      3. Final Answer:

        Cause: Partitioning by rows only; Fix: Add vertical partitioning to separate email column -> Option A
      4. Quick Check:

        Slow email queries fixed by vertical partitioning [OK]
      Hint: Slow column queries? Add vertical partitioning [OK]
      Common Mistakes:
      • Confusing cause with partition type
      • Suggesting wrong partitioning fix
      • Ignoring query patterns in design
      5. You design a large e-commerce database with millions of orders. You want to improve performance by splitting data. Which approach is best and why?
      hard
      A. Use horizontal partitioning by customer ID and vertical partitioning by payment info for balanced load
      B. Use vertical partitioning by splitting order details and customer info into separate tables to reduce row size
      C. Use no partitioning and rely on caching for performance
      D. Use horizontal partitioning by order date to distribute rows across servers, improving query speed on recent orders

      Solution

      1. Step 1: Understand data and query patterns

        Orders have many rows and columns; splitting by customer ID (horizontal) balances load; splitting payment info (vertical) reduces row size.
      2. Step 2: Evaluate options

        Use horizontal partitioning by customer ID and vertical partitioning by payment info for balanced load combines horizontal and vertical partitioning for scalability and performance, better than single approach or no partitioning.
      3. Final Answer:

        Use horizontal partitioning by customer ID and vertical partitioning by payment info for balanced load -> Option A
      4. Quick Check:

        Combine horizontal and vertical partitioning for large data [OK]
      Hint: Combine horizontal and vertical for big, complex data [OK]
      Common Mistakes:
      • Using only one partitioning type for complex data
      • Ignoring query patterns and data distribution
      • Relying solely on caching without partitioning
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard