【MySQL数据库】五、索引

本文详细介绍了MySQL数据库中的索引,包括索引的基本概念、聚集索引与非聚集索引的区别、创建与删除索引的操作,以及索引的优缺点和优化策略。通过理解这些内容,有助于提升数据库查询效率。
摘要由CSDN通过智能技术生成

一、索引基本概念

1000条数据,select查询一条数据,三种查询方式:

  1. 顺序查询:如果数据无序,最坏情况下,查询1000次,最好情况下,如果查询信息为主键,查询一次,如果不是,代表存在重复数据,那么查询1000次,这就是顺序遍历,时间复杂度为O(N)
  2. 二分查找:如果数据有序,使用二分查找最坏14次,即O(log2 n),效率高,前提是数据有序。
  3. 多路查询:O(logxn)效率更高

所以查询密集型数据库,需要查询效率高,如果有序,那么查找速度就会很快。那么索引的概念就出来了:

索引:用来排列数据的数据结构,让数据按照某种规则排列有序,占用空间,可以通过多路查找进行查找数据,提高查询效率。

索引的建立:基于字段,可以提高该字段的查询效率。

更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度,如果没有索引,那么需要一页一页的查询内容。

数据库索引: 是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据库表中数据,索引的实现通常使用B树或B+树。(下一篇博客详解MySQL数据库索引)

二、聚集索引和非聚集索引

MySQL数据库普通使用B+树作为索引,索引分为聚集索引和非聚集索引两种:

  1. 聚集索引主索引文件和数据文件为同一份文件,即数据存储是集中的。主要用在InnoDB存储引擎中。
  2. 非聚集索引主索引文件和数据文件分别存储在两个文件,即数据存储分散。主要用在MyISAM存储引擎中。

【 两者的区别:】

1.存储特点的区别:

  • 聚集索引按照索引顺序存储数据,数据行顺序固定,使用B+树做索引时,叶子节点存储真实的数据,一张表上只有一个聚集索引。
  • 非聚集索引数据的存储和索引无关,数据行顺序不固定,逻辑连续,物理不连续,叶子节点存储数据的地址。一张表可以存在多个非聚集索引。

2.更新表数据的区别:

  • 插入数据时:非聚集索引存储数据的地址,所以将插入的数据添加到表尾即可
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值