Bird
Raised Fist0
DBMS Theoryknowledge~5 mins

Primary vs secondary indexes in DBMS Theory - Quick Revision & Key Differences

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a primary index in a database?
A primary index is an index based on the primary key of a table. It uniquely identifies each record and is used to quickly locate data. It is usually automatically created when a primary key is defined.
Click to reveal answer
beginner
What is a secondary index in a database?
A secondary index is an index created on non-primary key columns. It helps speed up queries on those columns but does not enforce uniqueness or directly identify records.
Click to reveal answer
intermediate
How does a primary index differ from a secondary index?
A primary index is based on the primary key and uniquely identifies records, while a secondary index is based on other columns and may not be unique. Primary indexes are often clustered, meaning data is stored in the order of the index, but secondary indexes are usually non-clustered.
Click to reveal answer
beginner
Why are secondary indexes useful?
Secondary indexes allow faster searching and retrieval of data based on columns other than the primary key. They improve query performance when filtering or sorting by those columns.
Click to reveal answer
beginner
Can a table have multiple secondary indexes?
Yes, a table can have multiple secondary indexes on different columns to optimize various queries. However, each index adds some overhead for data updates.
Click to reveal answer
Which index uniquely identifies each record in a table?
AComposite index
BSecondary index
CPrimary index
DForeign key index
What is true about secondary indexes?
AThey are based on non-primary key columns
BThey are always unique
CThey store data in sorted order
DThey replace the primary index
Which of the following is a benefit of secondary indexes?
AEnforcing data uniqueness
BSpeeding up queries on non-primary key columns
CReducing storage space
DAutomatically updating primary keys
Can a table have more than one secondary index?
AYes, multiple secondary indexes can exist
BNo, only one secondary index is allowed
COnly if the table has no primary key
DOnly if the database is NoSQL
Which index type is usually clustered, storing data in index order?
AHash index
BSecondary index
CBitmap index
DPrimary index
Explain the main differences between primary and secondary indexes in a database.
Think about uniqueness and which columns the indexes are built on.
You got /5 concepts.
    Describe why secondary indexes are important and when you would use them.
    Consider queries that filter by columns other than the primary key.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a primary index in a database?
      easy
      A. To provide unique and fast access to records using the primary key
      B. To speed up searches on non-key columns
      C. To store duplicate values for faster retrieval
      D. To backup the database automatically

      Solution

      1. Step 1: Understand the role of primary index

        A primary index is created on the primary key of a table, which uniquely identifies each record.
      2. Step 2: Identify its main function

        It ensures fast and unique access to records based on the primary key values.
      3. Final Answer:

        To provide unique and fast access to records using the primary key -> Option A
      4. Quick Check:

        Primary index = unique fast access [OK]
      Hint: Primary index = unique key fast access [OK]
      Common Mistakes:
      • Confusing primary index with secondary index
      • Thinking primary index allows duplicates
      • Assuming primary index is for backup
      2. Which of the following is the correct statement about creating a secondary index in SQL?
      easy
      A. CREATE INDEX idx_name ON table(column);
      B. CREATE UNIQUE INDEX idx_name ON table(column);
      C. CREATE PRIMARY INDEX idx_name ON table(column);
      D. CREATE SECONDARY INDEX idx_name ON table(column);

      Solution

      1. Step 1: Recall SQL syntax for indexes

        Secondary indexes are created using the standard CREATE INDEX statement without the PRIMARY keyword.
      2. Step 2: Identify the correct syntax

        CREATE INDEX idx_name ON table(column); uses the correct syntax: CREATE INDEX idx_name ON table(column);
      3. Final Answer:

        CREATE INDEX idx_name ON table(column); -> Option A
      4. Quick Check:

        Secondary index syntax = CREATE INDEX [OK]
      Hint: Secondary index uses CREATE INDEX without PRIMARY [OK]
      Common Mistakes:
      • Using CREATE SECONDARY INDEX which is invalid
      • Confusing with CREATE PRIMARY INDEX syntax
      • Using UNIQUE keyword incorrectly for secondary index
      3. Consider a table Employees(emp_id, name, department) where emp_id is the primary key. Which index type would speed up a query filtering by department?
      medium
      A. Primary index on department
      B. Primary index on emp_id
      C. Secondary index on department
      D. No index needed

      Solution

      1. Step 1: Identify the primary key and its index

        The primary key is emp_id, so the primary index is on emp_id.
      2. Step 2: Determine which index helps filter by department

        Since department is not the primary key, a secondary index on department speeds up queries filtering by it.
      3. Final Answer:

        Secondary index on department -> Option C
      4. Quick Check:

        Filter by non-key column = secondary index [OK]
      Hint: Use secondary index for non-primary key columns [OK]
      Common Mistakes:
      • Assuming primary index helps filter by any column
      • Trying to create primary index on non-key column
      • Ignoring the benefit of secondary indexes
      4. A developer created a secondary index on a column that contains many duplicate values. What is the likely problem?
      medium
      A. The database will reject the index creation
      B. The primary index will be corrupted
      C. The secondary index will enforce uniqueness
      D. The secondary index will be inefficient due to low uniqueness

      Solution

      1. Step 1: Understand secondary index behavior with duplicates

        Secondary indexes can be created on columns with duplicates but may become less efficient because many records share the same key.
      2. Step 2: Identify the impact on performance

        Low uniqueness means the index has many entries pointing to multiple rows, slowing down search performance.
      3. Final Answer:

        The secondary index will be inefficient due to low uniqueness -> Option D
      4. Quick Check:

        Duplicates in secondary index = inefficiency [OK]
      Hint: Secondary index on duplicates slows searches [OK]
      Common Mistakes:
      • Thinking secondary index enforces uniqueness
      • Believing primary index gets corrupted
      • Expecting index creation to fail
      5. You have a large table with a primary index on customer_id and a secondary index on city. You want to optimize queries filtering by both customer_id and city. What is the best indexing strategy?
      hard
      A. Drop the secondary index and rely only on primary index
      B. Create a composite index on (customer_id, city)
      C. Create a secondary index on customer_id only
      D. Create two separate secondary indexes on customer_id and city

      Solution

      1. Step 1: Analyze current indexes and query filters

        Primary index exists on customer_id, secondary index on city. Queries filter by both columns.
      2. Step 2: Understand composite index benefits

        A composite index on (customer_id, city) allows efficient filtering on both columns together, improving query speed.
      3. Step 3: Evaluate other options

        Dropping indexes or creating separate secondary indexes won't optimize combined filtering as well as a composite index.
      4. Final Answer:

        Create a composite index on (customer_id, city) -> Option B
      5. Quick Check:

        Combined filter = composite index [OK]
      Hint: Use composite index for multi-column filters [OK]
      Common Mistakes:
      • Dropping useful indexes
      • Creating redundant secondary indexes
      • Ignoring composite index advantages