维克多阿涛

2022-04-06   阅读量: 121

Mysql

MySQL索引的操作

索引的操作

实际上索引也是一张表,创建索引时,数据库管理系统会在本地磁盘建立索引文件,里面保存了索引字段,并指向实体表的记录。


创建索引

创建表的同时须指定索引名、表名和字段名。

create index  on ();


自动创建索引

  • 在表中定义了主键约束时,会自动创建一个对应的主键索引。

  • 在表中定义了外键约束时,会自动创建一个对应的普通索引。

  • 在表中定义了唯一约束时,会自动创建一个对应的唯一索引。

示例:emp表中的job添加普通索引

mysql> create index job_index on emp(job);


查看索引:

语法

show index from ;

示例:查看emp表中的索引

mysql> show index from emp;
+-------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table | Non_unique | Key_name  | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+-------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| emp   |          0 | PRIMARY   |            1 | empno       | A         |          14 |     NULL |   NULL |      | BTREE      |         |               | YES     | NULL       |
| emp   |          0 | ename     |            1 | ename       | A         |          14 |     NULL |   NULL | YES  | BTREE      |         |               | YES     | NULL       |
| emp   |          1 | deptno    |            1 | deptno      | A         |           3 |     NULL |   NULL | YES  | BTREE      |         |               | YES     | NULL       |
| emp   |          1 | job_index |            1 | job         | A         |           5 |     NULL |   NULL |      | BTREE      |         |               | YES     | NULL       |
+-------+------------+-----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+


使用索引

在查询语句中使用索引会大大提升数据的检索速度。
示例

mysql> select ename,job,deptno from emp where job='salesman';
+--------+----------+--------+
| ename  | job      | deptno |
+--------+----------+--------+
| allen  | salesman |     30 |
| ward   | salesman |     30 |
| martin | salesman |     30 |
| turner | salesman |     30 |
+--------+----------+--------+


删除索引

删除索引只是删除了表中的索引对象,表中的数据不会被删除。
语法

drop index  on ;

示例

mysql> drop index job_index on emp;
mysql> select ename,job,deptno from emp where job='salesman';
+--------+----------+--------+
| ename  | job      | deptno |
+--------+----------+--------+
| allen  | salesman |     30 |
| ward   | salesman |     30 |
| martin | salesman |     30 |
| turner | salesman |     30 |
+--------+----------+--------+


加入CDA数据俱乐部,了解数据行业动态和各行业数据信息 https://www.cda.cn/member.html?utm_source=weitao


0.0000 0 0 关注作者 收藏 编辑

评论(0)


字体

字号

代码语言



发布评论


暂无数据

快速发帖 我要提问


58.0636 2 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子