A quick guide to MySQL indexes

A quick guide to MySQL indexes

The establishment of MySQL index is very important for the efficient operation of MySQL. Index can greatly improve the retrieval speed of MySQL.

To use an analogy, if MySQL with a proper design and indexes is a Lamborghini, then MySQL without an index is a human-powered tricycle.

Indexes are divided into single-column indexes and composite indexes. A single-column index is an index that contains only a single column. A table can have multiple single-column indexes, but these are not composite indexes. Composite index, that is, an index contains multiple columns.

When creating an index, you need to ensure that the index is applied to the SQL query statement (usually as a condition of the WHERE clause).

In fact, the index is also a table that stores the primary key and index fields and points to the records of the entity table.

The above all talks about the benefits of using indexes, but excessive use of indexes will lead to abuse. Therefore, indexes also have their disadvantages: although indexes greatly improve query speed, they also reduce the speed of updating tables, such as INSERT, UPDATE, and DELETE. Because when updating a table, MySQL not only needs to save the data, but also the index file.

Building an index takes up disk space for index files.

Normal index

Create Index

This is the most basic index and it has no restrictions. It can be created in the following ways:

CREATE INDEX indexName ON mytable(username(length));

If it is CHAR or VARCHAR type, length can be smaller than the actual length of the field; if it is BLOB or TEXT type, length must be specified.

Modify table structure

ALTER mytable ADD INDEX [indexName] ON (username(length))

Specify directly when creating a table

CREATE TABLE mytable( 
 
ID INT NOT NULL, 
 
username VARCHAR(16) NOT NULL, 
 
INDEX [indexName] (username(length)) 
 
);

Syntax to delete an index

DROP INDEX [indexName] ON mytable;

Unique Index

It is similar to the previous ordinary index, except that the values ​​of the index column must be unique, but null values ​​are allowed. If it is a composite index, the combination of column values ​​must be unique. It can be created in the following ways:

Create Index

CREATE UNIQUE INDEX indexName ON mytable(username(length))

Modify table structure

ALTER mytable ADD UNIQUE [indexName] ON (username(length))

Specify directly when creating a table

CREATE TABLE mytable( 
 
ID INT NOT NULL, 
 
username VARCHAR(16) NOT NULL, 
 
UNIQUE [indexName] (username(length)) 
 
);

Adding and dropping indexes using the ALTER command

There are four ways to add indexes to a table:

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): This statement adds a primary key, which means that the index value must be unique and cannot be NULL.
  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): This statement creates an index whose values ​​must be unique (except NULL, which may appear multiple times).
  • ALTER TABLE tbl_name ADD INDEX index_name (column_list): Add a normal index. The index value can appear multiple times.
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list): This statement specifies the index as FULLTEXT for full-text indexing.

The following example adds an index to a table.

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

You can also remove indexes using the DROP clause in the ALTER command. Try the following example to delete the index:

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

Use the ALTER command to add and delete primary keys

A primary key can only be applied to one column. When adding a primary key index, you need to ensure that the primary key is not empty (NOT NULL) by default. The following are examples:

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

You can also delete a primary key using the ALTER command:

mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

When deleting a key, you only need to specify the PRIMARY KEY, but when deleting an index, you must know the index name.

Display index information

You can use the SHOW INDEX command to list the relevant index information in the table. You can format the output by adding \G.

Try the following examples:

mysql> SHOW INDEX FROM table_name\G
........

The above is a quick introduction to the details of MySQL indexes. For more information about MySQL indexes, please pay attention to other related articles on 123WORDPRESS.COM!

You may also be interested in:
  • Summary of knowledge points about covering index in MySQL
  • Detailed explanation of MySQL InnoDB index extension
  • MySQL performance optimization: how to use indexes efficiently and correctly
  • Basic syntax of MySQL index
  • Detailed explanation of MySQL combined index method
  • An article to master MySQL index query optimization skills
  • Mysql index types and basic usage examples
  • Detailed explanation of the underlying implementation of descending index, a new feature of MySQL 8
  • Which is faster among MySQL full-text index, joint index, like query, and json query?
  • How to use MySQL covering index and table return
  • Various types of MySQL indexes

<<:  MySQL scheduled backup solution (using Linux crontab)

>>:  How to use Gitlab-ci to continuously deploy to remote machines (detailed tutorial)

Recommend

JavaScript implements simple date effects

The specific code of JavaScript date effects is f...

Various front-end printing methods of web: CSS controls web page printing style

CSS controls the printing style of web pages : Use...

How to automatically back up the mysql database regularly

We all know that data is priceless. If we don’t b...

MySQL index usage monitoring skills (worth collecting!)

Overview In a relational database, an index is a ...

Make your text dance with the marquee attribute in HTML

Syntax: <marquee> …</marquee> Using th...

The difference between html empty link href="#" and href="javascript:void(0)"

# contains a location information. The default anc...

MySQL index for beginners

Preface Since the most important data structure i...

Summary of basic operations for MySQL beginners

Library Operations Query 1.SHOW DATABASE; ----Que...

Summary of some points to note when registering Tomcat as a service

Here are some points to note when registering Tom...

Web page experience: planning and design

1. Clarify the design direction <br />First,...

How to ensure that every page of WeChat Mini Program is logged in

Table of contents status quo Solution Further sol...

Vue implements a simple shopping cart example

This article example shares the specific code of ...