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)