添加复合索引
在本步骤中,你将学习如何在 usercourse 表的 user 和 study_time 字段上添加复合索引。
-
启动 MySQL 服务。
sudo /etc/init.d/mysql start
-
登录 MySQL 终端。
mysql -uroot
-
将提供的 initDatabase.sql 脚本中的数据导入到 MySQL 数据库:
SOURCE /home/labex/project/initDatabase.sql
-
在 /home/labex/project 目录中创建 addIndex.sql 文件。
-
在 addIndex.sql 文件中,添加以下 SQL 语句以创建复合索引:
ALTER TABLE labex.usercourse ADD INDEX ix_user_study_time (user, study_time);
此语句在 usercourse 表的 user 和 study_time 字段上创建一个名为 ix_user_study_time 的复合索引。
-
保存 addIndex.sql 文件。
-
在 MySQL 终端中,运行以下命令来执行 SQL 脚本:
SOURCE /home/labex/project/addIndex.sql
这将在数据库中创建复合索引。
-
通过运行以下 SQL 语句验证索引创建:
SHOW INDEX FROM usercourse;
输出应显示新的复合索引。
MariaDB [labex]> SHOW INDEX FROM usercourse;
+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Ignored |
+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| usercourse | 0 | PRIMARY | 1 | ID | A | 10 | NULL | NULL | | BTREE | | | NO |
| usercourse | 1 | ix_user_study_time | 1 | user | A | 2 | NULL | NULL | YES | BTREE | | | NO |
| usercourse | 1 | ix_user_study_time | 2 | study_time | A | 10 | NULL | NULL | YES | BTREE | | | NO |
+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
3 rows in set (0.001 sec)