MySQL 在 int 类型的列上建立索引?

mysqlmysqli database

每当您的表包含大量记录时,在 int 类型的列上添加索引是加快查询运行速度的好选择。

如果您的表包含较少的记录,那么在 int 类型的列上使用索引不是一个好选择。

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

mysql> create table indexOnIntColumnDemo
   -> (
   -> UserId int,
   -> UserName varchar(20),
   -> UserAge int,
   -> INDEX(UserId)
   -> );
Query OK, 0 rows affected (0.85 sec)

现在查看表的描述 −

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);
Query OK, 1 row affected (0.22 sec)
mysql> insert into indexOnIntColumnDemo values(1002,'Sam',25);
Query OK, 1 row affected (0.14 sec)
mysql> insert into indexOnIntColumnDemo values(1003,'Carol',22);
Query OK, 1 row affected (0.24 sec)
mysql> insert into indexOnIntColumnDemo values(1004,'Mike',26);
Query OK, 1 row affected (0.14 sec)

现在,您可以使用 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)

相关文章