Languages
[Edit]
EN

MySQL - add index to existing table

0 points
Created by:
Dirask Community
6810

In this article, we would like to show you how to add index to an existing table in MySQL.

Quick solution:

CREATE INDEX `index_name`
ON `table_name` (`column1`, `column2`, `columnN`);

or

ALTER TABLE `table_name` 
ADD INDEX `index_name` (`column2`, `column2`, `columnN`);

Practical example

To show how to add index to existing table, we will use the following table:

MySQL - example data used to add index to existing table
MySQL - example data used to add index to existing table

Note:

At the end of this article you can find database preparation SQL queries.

Example 1 - one column index

In this example, we will create an index for the salary column in users table.

Query:

CREATE INDEX `salary_index`
ON `users` (`salary`);

Result:

1. Using query

SHOW INDEX FROM `users` FROM `dirask`;    -- where users-table_name, dirask-database_name
MySQL - add index to existing table - result using query
MySQL - add index to existing table - result using query

2. Using HeidiSQL

MySQL - add index to existing table - result using HeidiSQL
MySQL - add index to existing table - result using HeidiSQL

Example 2 - two column index

In this example, we will create an index on the name and surname columns in users table.

Query:

CREATE INDEX `full_name_index`
ON `users` (`name`, `surname`);

Result:

1. Using query

SHOW INDEX FROM `users` FROM `dirask`;    -- where users-table_name, dirask-database_name
MySQL - add index to existing table - result
MySQL - add index to existing table - result using query

2. Using HeidiSQL

MySQL - add index to existing table - result
MySQL - add index to existing table - result using HeidiSQL

Example 3 - using ALTER TABLE

In this example, we will create an index on two columns using ALTER TABLE statement.

Query:

ALTER TABLE `users` 
ADD INDEX `index_full_name` (`name`, `surname`);

Result:

1. Using query

SHOW INDEX FROM `users` FROM `dirask`;    -- where users-table_name, dirask-database_name
MySQL - add index to existing table - result
MySQL - add index to existing table - result using query

2. Using HeidiSQL

MySQL - add index to existing table - result
MySQL - add index to existing table - result using HeidiSQL

Database preparation

create_tables.sql file:

CREATE TABLE `users` (
	`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
	`name` VARCHAR(50) NOT NULL,
	`surname` VARCHAR(50) NOT NULL,
    `salary` DECIMAL(15,2) NOT NULL,
	PRIMARY KEY (`id`)
);

insert_data.sql file:

INSERT INTO `users`
	( `name`, `surname`, `salary`)
VALUES
	('John', 'Stewart', '3512.00'),
	('Chris', 'Brown', '1344.00'),
	('Kate', 'Lewis', '6574.00'),
	('Ailisa', 'Gomez', '6500.00'),
	('Gwendolyn', 'James', '4200.00'),
	('Simon', 'Collins', '3320.00'),
	('Taylor', 'Martin', '1500.00'),
	('Andrew', 'Thompson', '2100.00');

MySQL - indexes

Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join