mysql这就是索引

什么是索引

索引就是用来便利搜索的数据结构。比如有一个一万条数据的员工表,现在要查询“张三”的信息,数据库需要将一万条数据检索一遍,这样并不机智。在姓名这一字段加了索引之后,就可以词典的目录一样,表明姓张的在900-930行之间,只需要检索这30行就可以了 ,很明显极大的提高了查询的效率 。这就是索引的作用,为了满足类似目录的功能而被创造,好处就是可以极大提高查询效率。

我觉得在学习功能性较强的软件时,弄懂一个知识点应该从功能入手,理解数据库查询的需求和索引功能之后,如何创建,调用,删除等只是语法问题,没有难度 。理解运行的整个过程之后,某个功能的优势和劣势也就自然而然的明白了。

如何创建

语法为 CREATE INDEX index_Name ON table_Name(field_Name );
比如在 表student中 class这一列创建名为class_index的索引。

mysql> CREATE INDEX class_index ON student(class); --在 
Query OK, 0 rows affected (0.21 sec)
Records: 0  Duplicates: 0  Warnings: 0

如何调用

索引和函数不同,不用主动调用,比如在查询 一班的学生 ,执行 select * from student where class =‘1’ 数据库检查该列是否建立索引,如果有就会调用,也就是说,数据库自动调用。

如何查看

索引是依赖表的,可以查看某个表上创建的索引, 语法 show index from table_Name ;

mysql> SHOW INDEX FROM student;
+---------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Table   | Non_unique | Key_name    | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
+---------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| student |          0 | PRIMARY     |            1 | s_num       | A         |           3 |     NULL |   NULL |      | BTREE      |         |               | YES     |
| student |          1 | class_index |            1 | class       | A         |           2 |     NULL |   NULL | YES  | BTREE      |         |               | YES     |
+---------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
2 rows in set (0.05 sec)

如何删除

删除索引语法: drop index class_index on table_Name;

mysql> drop index class_index on student;
Query OK, 0 rows affected (0.10 sec)
Records: 0  Duplicates: 0  Warnings: 0

索引种类

  • 唯一索引/非唯一索引
  • 主键索引
  • 聚集索引/非聚集索引
  • 联合索引

索引的优势和劣势

索引的优点

  1. 提高数据检索速度,减少查询时间
  2. 索引可以加快表与表之间的连接
  3. 建立索引后,排序和分组更加便利

索引的缺点

  1. 索引占用额外的内存
  2. 需要花费成本去创建索引,维护索引。当数据量较大时,维护的成本也增加
  3. 在插入和修改数据时,都会动态更改索引,为维护数据库增加难度(索引不适合高修改,低查询的数据库)

猜你喜欢

转载自blog.csdn.net/weixin_43705953/article/details/107636094