The CREATE INDEX command in MySQL is used to create an index on a table column. An index is a data structure that helps MySQL find rows with specific values quickly. This can significantly improve the performance of queries that filter or sort data based on the indexed column.


CREATE INDEX [index_name] ON [table_name] (col1, col2, ...)


  • index_name: The name of the index to create.
  • table_name: The name of the table on which to create the index.
  • col1, col2, …: One or more column names to include in the index.


CREATE INDEX my_index ON users (name);
CREATE INDEX idx_age_city ON users (age, city);

Common Issues

  • Duplicate index names: If you try to create an index with a name that already exists, MySQL will return an error.
  • Invalid column names: Make sure that the column names specified in the CREATE INDEX command actually exist in the table.
  • Too many columns: MySQL has a limit on the number of columns that can be included in an index. If you try to create an index with too many columns, MySQL will return an error.


The CREATE INDEX command can be used with other MySQL commands to improve query performance. For example, you can use the EXPLAIN command to see how MySQL is using an index to execute a query.