MySQL索引的int类型的列?

在表具有大量记录的情况下,在int类型的列上添加索引是一种更快地运行查询的好选择。

如果表中的记录较少,则在int类型的列上使用索引不是一个好选择。

为了理解这个概念,让我们创建一个表。创建表的查询如下-

mysql> create table indexOnIntColumnDemo
   -> (
   -> UserId int,
   -> UserName varchar(20),
   -> UserAge int,
   -> INDEX(UserId)
   -> );

现在检查表的描述-

mysql> desc indexOnIntColumnDemo;

这是输出-

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| UserId   | int(11)     | YES  | MUL | NULL    |       |
| UserName | varchar(20) | YES  |     | NULL    |       |
| UserAge  | int(11)     | YES  |     | NULL    |      |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.04 sec)

现在,您可以使用insert命令在表中插入一些记录。查询如下-

mysql> insert into indexOnIntColumnDemo values(1001,'John',23);
mysql> insert into indexOnIntColumnDemo values(1002,'Sam',25);
mysql> insert into indexOnIntColumnDemo values(1003,'Carol',22);
mysql> insert into indexOnIntColumnDemo values(1004,'Mike',26);

现在,您可以使用select语句显示表中的所有记录。查询如下-

mysql> select *from indexOnIntColumnDemo;

以下是输出-

+--------+----------+---------+
| UserId | UserName | UserAge |
+--------+----------+---------+
| 1001   | John     |      23 |
| 1002   | Sam      |      25 |
| 1003   | Carol    |      22 |
| 1004   | Mike     |      26 |
+--------+----------+---------+
4 rows in set (0.00 sec)

为了更快地运行它,请使用int类型的索引列上的条件

mysql> select *from indexOnIntColumnDemo where UserId=1004;

输出如下

+--------+----------+---------+
| UserId | UserName | UserAge |
+--------+----------+---------+
| 1004  | Mike      | 26      |
+--------+----------+---------+
1 row in set (0.00 sec)