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)