在表具有大量记录的情况下,在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)