Bird
Raised Fist0
MySQLquery~5 mins

Creating indexes in MySQL - Quick Revision & Summary

Choose your learning style10 modes available
Recall & Review
beginner
What is an index in a database?
An index is like a shortcut in a book. It helps the database find data faster without looking at every row.
Click to reveal answer
beginner
How do you create a simple index on a column named 'name' in MySQL?
Use the command: CREATE INDEX idx_name ON table_name(name); This makes searching by 'name' faster.
Click to reveal answer
intermediate
What is the difference between a UNIQUE index and a regular index?
A UNIQUE index makes sure no two rows have the same value in the indexed column, while a regular index just speeds up searches.
Click to reveal answer
intermediate
Why should you not create too many indexes on a table?
Too many indexes slow down data changes like INSERT, UPDATE, DELETE because the database must update all indexes too.
Click to reveal answer
intermediate
What is a composite index?
A composite index is an index on multiple columns together. It helps speed up searches that use those columns combined.
Click to reveal answer
Which command creates an index on the 'email' column in MySQL?
ACREATE INDEX idx_email ON users(email);
BCREATE TABLE idx_email ON users(email);
CINSERT INDEX idx_email ON users(email);
DALTER TABLE users ADD COLUMN idx_email(email);
What does a UNIQUE index ensure?
ANo duplicate values in the indexed column
BFaster data insertion
CAllows NULL values only
DDeletes duplicate rows automatically
Which is a downside of having many indexes on a table?
AIndexes automatically fix data errors
BSlower data retrieval
CMore disk space saved
DSlower data modification operations
What is a composite index?
AAn index on a single column
BAn index on multiple columns together
CAn index that stores data in compressed form
DAn index that automatically updates
Which of these is NOT a valid reason to create an index?
ASpeed up search queries
BEnforce uniqueness of data
CMake data insertion faster
DImprove join performance
Explain what an index is and why it is useful in a database.
Think about how you find a topic quickly in a book.
You got /3 concepts.
    Describe how to create a simple index in MySQL and mention one important consideration when using indexes.
    Remember the command and why too many indexes can be bad.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of creating an index on a column in a MySQL table?
      easy
      A. To speed up data retrieval when searching or filtering
      B. To store duplicate values in the column
      C. To increase the size of the database
      D. To automatically backup the table data

      Solution

      1. Step 1: Understand what an index does

        An index acts like a shortcut to find data faster in a table.
      2. Step 2: Identify the main benefit

        Indexes speed up searches and filtering by avoiding full table scans.
      3. Final Answer:

        To speed up data retrieval when searching or filtering -> Option A
      4. Quick Check:

        Index = faster search [OK]
      Hint: Indexes speed up searches by creating shortcuts [OK]
      Common Mistakes:
      • Thinking indexes store duplicate values
      • Believing indexes increase database size significantly
      • Confusing indexes with backups
      2. Which of the following is the correct syntax to create a simple index on the column email in a table named users?
      easy
      A. INDEX CREATE email_index ON users (email);
      B. CREATE INDEX email_index ON users (email);
      C. CREATE INDEX users.email_index (email);
      D. CREATE INDEX ON users email_index (email);

      Solution

      1. Step 1: Recall MySQL index creation syntax

        The correct syntax is: CREATE INDEX index_name ON table_name (column_name);
      2. Step 2: Match the syntax with options

        CREATE INDEX email_index ON users (email); matches the correct syntax exactly.
      3. Final Answer:

        CREATE INDEX email_index ON users (email); -> Option B
      4. Quick Check:

        CREATE INDEX index_name ON table (column) [OK]
      Hint: Syntax: CREATE INDEX name ON table (column) [OK]
      Common Mistakes:
      • Swapping order of table and index name
      • Omitting ON keyword
      • Using wrong keyword order
      3. Given the table products with columns id, name, and category, what will be the effect of this query?
      CREATE UNIQUE INDEX idx_name ON products (name);
      medium
      A. It allows duplicate product names in the table
      B. It creates a backup of the products table
      C. It deletes rows with duplicate names
      D. It prevents duplicate product names and speeds up searches by name

      Solution

      1. Step 1: Understand UNIQUE index effect

        A UNIQUE index prevents duplicate values in the indexed column.
      2. Step 2: Identify additional benefit

        Indexes also speed up searches on that column.
      3. Final Answer:

        It prevents duplicate product names and speeds up searches by name -> Option D
      4. Quick Check:

        UNIQUE index = no duplicates + faster search [OK]
      Hint: UNIQUE index blocks duplicates and speeds search [OK]
      Common Mistakes:
      • Thinking UNIQUE index allows duplicates
      • Confusing index with backup or delete
      • Ignoring speed improvement
      4. You try to create an index with this command:
      CREATE INDEX idx_age ON employees age;

      What is the error in this statement?
      medium
      A. Table name is missing
      B. Index name cannot start with 'idx_'
      C. Missing parentheses around the column name
      D. Cannot create index on numeric columns

      Solution

      1. Step 1: Check syntax for CREATE INDEX

        The column list must be inside parentheses after the table name.
      2. Step 2: Identify the error

        The statement lacks parentheses around age, causing syntax error.
      3. Final Answer:

        Missing parentheses around the column name -> Option C
      4. Quick Check:

        Columns must be in parentheses [OK]
      Hint: Always put columns in parentheses after table name [OK]
      Common Mistakes:
      • Forgetting parentheses around columns
      • Thinking index names have restrictions
      • Assuming numeric columns can't be indexed
      5. You have a large orders table with columns order_id, customer_id, and order_date. You often query orders by customer_id and order_date. Which index creation will best improve query speed without allowing duplicate entries for the same customer on the same date?
      hard
      A. CREATE UNIQUE INDEX idx_customer_date ON orders (customer_id, order_date);
      B. CREATE INDEX idx_customer ON orders (customer_id);
      C. CREATE INDEX idx_order_date ON orders (order_date);
      D. CREATE UNIQUE INDEX idx_order_id ON orders (order_id);

      Solution

      1. Step 1: Analyze query needs

        Queries filter by both customer_id and order_date, so a composite index on both is best.
      2. Step 2: Consider uniqueness requirement

        To prevent duplicate orders for the same customer on the same date, use a UNIQUE index on both columns.
      3. Final Answer:

        CREATE UNIQUE INDEX idx_customer_date ON orders (customer_id, order_date); -> Option A
      4. Quick Check:

        Composite UNIQUE index matches query and uniqueness [OK]
      Hint: Use composite UNIQUE index for multi-column uniqueness and speed [OK]
      Common Mistakes:
      • Creating single-column indexes only
      • Ignoring uniqueness requirement
      • Indexing unrelated columns
      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