美文网首页
数据库索引

数据库索引

作者: Cassie测试路 | 来源:发表于2019-03-29 12:21 被阅读0次

索引是对数据库表中的一列或者多列的值进行排序的一种 数据结构 ,使用索引可以快速访问数据库表中的特定信息(避免了全表扫描的耗时)。

  • 索引分为: 聚簇索引非聚簇索引 。聚簇索引是按照数据存放的物理位置为顺序的,非聚簇索引不一样;聚簇索引能够提高多行检索的速度,非聚簇索引对于单行的检索很快。
  • 常见索引类型: 主键索引 (唯一索引的特例), 唯一索引 (关联的列不能有2行相同的值), 聚集索引 (表中行的物理顺序与键值索引的逻辑顺序相同。一个表只能包含一个聚集索引)

优点:

  • 例如:SELECT * FROM projects WHERE id=110,没有索引时需要全表扫描projects表直到找到符合项,如果给id列添加索引,则只需要在索引列进行搜索,并且因为索引列是经过某种算法优化过的,所以查找次数要小很多。
  1. 创建唯一性索引,可以保证数据库表中每一行数据的唯一性
  2. 可以大大加快数据的检索速度
  3. 可以加速表与表之间的链接,特别是再实现数据的参考完整性方面

缺点:

  1. 创建索引和维护索引需要耗时,并且随着数据量的增加时间会增加
  2. 索引需要占据一定的物理空间
  3. 对表中的数据进行修改时(增加,删除,更新),索引也需要进行动态维护,降低了数据的维护速度。
实践
  • SHOW INDEX FROM table_name,显示某表上的所有索引
  • CREATE INDEX index_name ON table_name(col_name),为表的某列添加索引
  • CREATE UNIQUE INDEX index_name ON table_name(col1, col2),为表的某列添加唯一索引
  • ALTER TABLE table_name DROP INDEX index_name,修改表:删除表的某个索引
SHOW INDEX FROM projects;                          # 显示projects表上的所有索引

CREATE INDEX index_school_address ON schools(address DESC)  # 以降序索引某列的值
CREATE UNIQUE INDEX index_name ON schools(name)    # 添加唯一索引

ALTER TABLE schools DROP index_name ON schools     # 删除索引
DROP INDEX index_name ON schools                   # 同上
  • index_type索引类型: BTREE

  • Non_unique是否不唯一: 0表示唯一索引,1表示不是唯一索引

  • key_name索引名称: PRIMARY(主键索引)/xxx

  • Column_name索引作用的列:一列或者多列(如果某几个条件经常需要组合筛选则可以在这几个列上建立索引)

  • 一个索引可以包含多个列,同一个列也可以对应多个索引

  • navicat工具:在ctrl+d设计表页面,点击索引,可以查看当前列上的索引(索引名称、索引类型和索引方法等)

相关文章

  • 数据库索引记录

    本文用来记录数据库索引相关内容; 1】数据库索引分为单列索引,组合索引,全文索引,空间索引 2】单列索引:只有一个...

  • 索引,序列,视图

    1、数据库索引索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果...

  • Sql索引优化—转载

    数据库索引使用方式 使用索引是提高数据库查询效率的主要方式,下面从索引结构,索引类型,索引操作,命中索引几个方面来...

  • 数据库 - 索引

    索引 索引 索引的建立对于数据库的高效运行是很重要的。索引可以大大提高数据库的检索速度。 索引分单列索引,组合索引...

  • [Mysql]Mysql索引实现原理及相关优化策略

    数据库索引 数据库索引是什么? A database index is a data structure that...

  • 数据库索引定义和类型

    数据库索引类型及实现方式 1、索引定义 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引是对数据库表...

  • 数据库索引结构总结

    [TOC] 参考 数据库索引数据结构总结 本文摘抄自数据库索引数据结构总结 1. 摘要 数据库索引是数据库中最重要...

  • MySQL 索引

    MySQL 索引 数据库索引的原理:数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表...

  • 『数据库』索引的工作原理

    数据库索引能够提高数据库的查询效率,那么索引到底是什么。 什么是索引 索引本身这个名字已经能回答这个问题了,索引就...

  • PostgreSQL基础知识--索引

    索引是增强数据库性能的常用方法。索引使得数据库在查找和检索数据库的特定行的时候比没有索引快得多。但索引页增加了整个...

网友评论

      本文标题:数据库索引

      本文链接:https://www.haomeiwen.com/subject/syclbqtx.html