主键索引和普通索引有什么区别?

2023-11-10

在 MySQL 中, 索引是在存储引擎层实现的, 所以并没有统⼀的索引标准, 由于 InnoDB 存储引擎在 MySQL数据库中使⽤最为⼴泛, 下⾯以 InnoDB 为例来分析⼀下其中的索引模型.在 InnoDB 中, 表都是根据主键顺序以索引的形式存放的, InnoDB 使⽤了 B+ 树索引模型,所以数据都是存储在 B+ 树中的, 如图所示:
在这里插入图片描述
从图中可以看出, 根据叶子节点内容不同,索引类型分为主键索引和非主键索引.
主键索引也被称为聚簇索引,叶子节点存放的是整行数据; 而非主键索引被称为二级索引,叶子节点存放的是主键的值.
如果根据主键查询, 只需要搜索ID这颗B+树
而如果通过非主键索引查询, 需要先搜索k索引树, 找到对应的主键, 然后再到ID索引树搜索一次, 这个过程叫做回表.
总结, 非主键索引的查询需要多扫描一颗索引树, 效率相对更低.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

主键索引和普通索引有什么区别? 的相关文章

  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • Java、Oracle 中索引处缺少 IN 或 OUT 参数:: 1 错误

    您好 我使用 Netbeans 8 0 2 和 Oracle 11g Express Edition 在 JSF 2 2 中编写了一个图书馆管理系统 我有几个名为 书籍 借阅者 等的页面 以及数据库中一些名为相同名称的表 我的问题是这样的
  • IIF(...) 不是公认的内置函数

    我正在尝试在 Microsoft SQL Server 2008 R2 中使用它 SET SomeVar SomeOtherVar IIF SomeBool value when true value when false 但我收到一个错误
  • 在Oracle中使用IW和MM

    我使用 IW 表示每周结果 使用 MM 表示每月结果 但我总是收到错误 ORA 00979 not a GROUP BY expression 00979 00000 not a GROUP BY expression 我的疑问是这些 We
  • postgresql 不同的不工作

    我使用以下代码从数据库获取值 但是当我编写这段代码时 测试看看问题出在哪里 我注意到查询没有从数据库中获取不同的值 这是查询 select distinct ca id as id acc name as accName pIsu name
  • meta_query,如何使用关系 OR 和 AND 进行搜索?

    已解决 请参阅下面的答案 我有一个名为的自定义帖子类型BOOKS 它有几个自定义字段 名称为 TITLE AUTHOR GENRE RATING 我该如何修复我的meta query下面的代码以便仅books在自定义字段中包含搜索词 tit
  • 解析错误:语法错误,意外的 T_RETURN [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 遇到这个问
  • 可以有一个带有可变列的表吗?

    这可能是一个愚蠢的问题 但这里是 是否可以创建一个能够包含具有可变列数和自定义列名称的行的动态表 我浏览过 EAV 建模 但看起来很沉重 现实生活中的例子可能是这样的 假设我有一个客户登记册 但每个客户可能需要输入不同的信息 根据您要输入的
  • 支持 >65k 行的 Excel VBA SQL 驱动程序

    在 Excel 2010 中通过 VBA 查询 Excel 数据时 我遇到一个有趣的问题 我正在使用这些驱动程序连接到 xls 或 xls x m 文件 Sub OpenCon ByRef theConn As Connection ByV
  • SQL Server 查询中 UNION ALL 与 OR 条件

    我必须根据表上不存在的条件选择一些行 如果我使用如下的 union all 它会在不到 1 秒的时间内执行 SELECT 1 FROM dummyTable WHERE NOT EXISTS SELECT 1 FROM TABLE t WH
  • 无法与重定向器建立连接。确保“sql browser”服务正在运行

    所以我尝试这个 sql server 2012 由于这个错误我无法打开任何 ssis 包 无法与重定向器建立连接 确保 sql browser 服务正在运行 我的 Sql 浏览器肯定正在运行 我尝试在本地服务 本地系统和网络下更改它 仍然没
  • 向带有检查约束 SQL 的表添加列

    我想向表中添加一列 然后添加一个检查约束以确保其大于 0 我似乎无法让它在 oracle sl Developer 中运行 Alter TABLE store101 add column Base salary Number 7 2 con
  • 是否可以从子查询中获取多个值?

    有没有办法让子查询在oracle db中返回多列 我知道这个特定的sql会导致错误 但它很好地总结了我想要的 select a x select b y b z from b where b v a v from a 我想要这样的结果 a
  • 总和和不同不会改变结果?

    我是一个新手 试图在这里解决这个问题 到目前为止还没有运气 非常感谢任何帮助 Select Distinct AB agency no ab branch no AS AGENCY BRANCH count AB agency no ab
  • 多边形内的 SQL 地理点在 STIntersect 上不返回 true(但使用 Geometry 返回 true)

    我不想仅仅为了在 STIntersect 中返回 true 而将地理数据转换为几何图形 下面是 SQL 中的代码 DECLARE point GEOGRAPHY GEOGRAPHY Point 1 1 4326 DECLARE polygo
  • 消息 203,级别 16,状态 2,不是有效标识符

    我收到以下错误 消息 203 级别 16 状态 2 过程 getQuestion 第 18 行名称 select top 1 from tlb Question inner join tlb options on tlb options q
  • 在 plpgsql 函数中使用 quote_ident()

    我是创建 plpgsql 函数的新手 我需要一些有关在函数内部执行的动态命令上使用 quote ident 甚至 quote literal 的说明 希望有人能给我一个关于它们如何在函数内部工作的具体解释 TIA 这是一个例子 EXECUT
  • 如何将所有父母的父母作为循环引用表中子对象的列?

    我有一个表格 其中有类似的列 entityID entityName parentID 我如何编写一个查询来返回实体的所有父级级别 以返回类似的内容 childentityname parentlevel1name parentlevel2
  • 如何在 SQL Server 2012 中选择除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以选择所有列 但只选择我不想选择的特定列 我的意思是有时我会遇到这样的问题 表有数百个字段 而我只需要删除一个字段 我需要重写所有列吗 有什么窍门吗 喜欢select
  • Oracle REGEXP_INSTR() 和“a-z”字符范围与预期不匹配

    我想用REGEXP INSTR 在 oracle 数据库中检查小写 大写字符 我知道 upper and lower POSIX 字符类 但我选择了a z这给了我非常奇怪的结果 我不明白 有人可以解释一下吗 SELECT REGEXP IN

随机推荐

  • 如何解决没有指定在Windows运行或者它包含错误

    1 按快捷键win R 出现运行窗口 输入cmd 点击确定 2 出现此窗口 3 输入下列代码 for 1 in windir system32 dll do 32 exe s 1 注意空格 等待一段时间 停止后关闭窗口 重启电脑即可
  • import os总结

    转载自 https blog csdn net weixin 42427247 article details 89019940 作者 高小军 一 os path abspath path 返回path的绝对路径 eg os path ab
  • PHP 验证姓名是否正确

    PHP 中可以使用正则表达式来验证姓名的格式是否正确 下面是一个简单的例子 name 张三 pattern x 4e00 x 9fa5 2 4 u if preg match pattern name echo 姓名格式正确 else ec
  • zkeys系统生产服务器,Zkeys:低门槛、易操作的智能云管理系统

    ZKEYS系统是一个功能强大的智能化管理系统 目前国内最大的IDC业务管理系统之一 功能模块涵盖用户中心系统 财务系统 工单系统 备案系统和云服务器 服务托管器 虚拟主机等产品的弹性在线购买及及时开通 具有低门槛 易操作等特点 主要特性 1
  • 大屏数据可视化 B端UI设计后台PC网页UI设计U3D+可视化落地教程

    近年来 数据可视化是一个热度比较高的词 数据可视化大屏投放的需求也越来越多 数据可视化是指将数据以视觉形式来呈现 如图表或地图 以帮助人们了解这些数据的意义 数据可视化大屏是当前可视化领域的一项热门应用 通常可以分为信息展示类 数据分析类及
  • RuntimeError: cuda runtime error (30)问题解决

    已经不是第一次遇到这个问题 在此记录一下解决方式 虽然很暴力但是好用 应该还有其他解决方式 以后实验好用后再补充 出现该问题是因为cuda进入了休眠状态 所以程序运行出错 简单直接的解决方式是重启服务器完美解决 参考链接 https blo
  • 预测知识

    预测知识 预测模型变量重要性 可视化及论文撰写指南 目录 预测知识 预测模型变量重要性 可视化及论文撰写指南 变量重要性 模型可视化 论文撰写指南 参考资料 变量重要性 关于预测模型变量重要性 大家一定熟悉不过 但如下图所示 其展示上可有进
  • 计算机网络——网络层要点总结

    本文总结了计算机网络中网络层的相关知识 适合学习过计算机网络的人群快速复习 查找相关知识点并巩固 思维导图 基本概念 传输层 应用进程之间端到端的通信 路径设备透明 网络层 host之间的逻辑连接 虚拟 例如 路由路径 路径设备参与 网络层
  • 修改falcon的钉钉告警格式

    源码位置 open falcon falcon plus modules alarm cron builder go 调整格式 原始的SMS通知格式 几个通知方式都类似 所以就不全部列举 func BuildCommonSMSContent
  • python Matplotlib實現可視化

    Matplotlib matplotlib框架 matplotlib 的整體框架分爲三層 各層之間只能由上至下單向通信 分爲 Scripting 脚本 層 Artist 表現 層 Backend 後端 層 接下來對這三個層分別簡單的介紹一下
  • python考核试题及答案

    Python测试 总分 120 选择题 每题2分 共20分 1 下列哪个语句在Python中是非法的 B A x y z 1 B x y z 1 C x y y x D x y x x y 2 关于Python内存管理 下列说法错误的是 B
  • SARIMA时间序列模型预测城市房价数据

    SARIMA时间序列模型预测城市房价数据 数据清洗 文件中含有大量城市的房价数据 考虑到此次为学习性质的练习 为了节省数据处理的繁琐步骤 我截取了北京的2010 2021房价数据作为样例 并将价格的数据格式改为数值 去除多余的逗号 数据导入
  • 实现迷你版vue2的响应式核心原理代码

    vue2 的响应式核心原理代码 其实就只有几个模块 1 代理 Object defineProperty 2 依赖收集dep 收集所有监听页面数据的watcher实例 3 监听页面数据实例 watcher 4 观察者 Observer 实现
  • docker学习:容器互联-link

    我现在弄两个tomcat 分别是tomcat01 tomcat02 端口随机 随机端口 P 大写的P 小写的p要添加端口映射的 docker run d P name tomcat02 tomcat 我们想尝试直接通过名字来连接链接两个容器
  • Android studio文本控件的使用包含TextView控件、EditText控件,进行线性布局

    Android studio新建一个项目 修改XML如下 其中Activity名称为 MyControlText
  • typora中的图片传入到CSDN报错问题解决办法(详细步骤讲解)

    文章目录 typora中的图片传入到CSDN报错问题解决办法 一 报错问题描述 1 问题描述 2 原因分析 二 解决办法 1 软件介绍 2 阿里云oss 2 1 注册登录阿里云 2 2 购买对象存储oss 2 3 创建Buket 3 pic
  • 【AI外呼+RPA自动加微】,解锁企微新能力

    促销季临近 各类线上促销活动又拉开帷幕 多数商家意识到 在铺广告 做推广获客的同时 还可以利用好现有的用户数据 与客户建立更紧密的联系 激活客户进行二次转化 为了更加便于激活 运营客户 我们可以将客户引入另一个流量载体 企微私域 在使用平台
  • 微信小程序marquee

    https www jianshu com p 0ff03e5e942e 发现点问题 setdata方法放在create 里面获取不到真正的length长度 要放在attached 或者ready
  • Spring MVC框架详解(一)

    一 三层架构与MVC模型 我们的开发架构一般都是基于两种形式 一种是C S架构 也就是客户端 服务器架构 另一种是B S架构 也就是浏览器 服务器架构 在JavaEE开发中 几乎都是基于B S架构的开发 在B S架构中 系统标准的三层架构包
  • 主键索引和普通索引有什么区别?

    在 MySQL 中 索引是在存储引擎层实现的 所以并没有统 的索引标准 由于 InnoDB 存储引擎在 MySQL数据库中使 最为 泛 下 以 InnoDB 为例来分析 下其中的索引模型 在 InnoDB 中 表都是根据主键顺序以索引的形式