mysql中InnoDB索引与MyISAM索引

mysql索引

InnoDB 索引存储

主键索引(聚簇索引)

  • 定义:主键索引是 InnoDB 存储引擎的聚簇索引,它决定了表中数据的物理存储顺序。每个 InnoDB 表都有一个且仅有一个聚簇索引。
  • 存储:主键索引的叶子节点直接包含表的数据行。这意味着数据行按照主键索引的顺序物理存储在磁盘上。
  • 特点:
    • 数据和索引紧密关联:数据行和索引项紧密关联,优化了基于主键的查询。
    • 唯一性:主键必须是唯一的,且不能为 NULL。

二级索引(辅助索引)

  • 定义:二级索引是用于快速查找非主键列的索引。它们不是聚簇索引,因此叶子节点不包含完整的数据行。
  • 存储:二级索引的叶子节点包含索引列的值对应行的主键值。这允许数据库通过二级索引快速找到主键,然后使用主键在聚簇索引中找到完整数据行。
  • 特点:
    • 支持多列索引:二级索引可以包含多个列。
    • 查询优化:通过二级索引可以优化非主键列的查询。
    • 回表操作:当需要访问非主键列的完整数据时,需要执行回表操作,即使用二级索引中的主键值在聚簇索引中查找数据行。

覆盖索引

  • 定义:覆盖索引是一个索引包含了查询中所需的全部列,因此查询可以直接从索引中获取数据,而不需要访问实际的数据行。

    注意这里一定是一个索引

    如果查询中所需的三个列,它们各自都有索引,这个查询也不算覆盖索引查询。

    因为数据库在执行查询时,不能仅通过一个索引来获取 ABC 的值。数据库可能需要使用索引 idx_A 来定位行,然后访问表来获取 BC 的值

    而如果是一个索引中包含了查询中所需的全部列的话:就不需要再去查询其他表了,因为此时索引中就已经有了全部所需信息。

    使用覆盖索引是也要注意 “最左前缀原则”。

    如果所需的全部列是A,C,但是有一个复合索引A,B,C,此时也不需要多余的回表查询,因为索引都包含所需数据。

  • 优点:

    • 减少磁盘I/O:避免了对数据行的访问,减少了磁盘I/O操作。
    • 提高查询性能:查询速度显著提高,因为不需要回表操作。
    • 创建:通过创建复合索引(也不一定是复合索引,一般是复合索引,可以确保索引覆盖查询中的所有列)。
    • 覆盖索引原理

MyISAM 索引

  • 定义:MyISAM 是 MySQL 的另一个存储引擎,它使用非聚簇索引。
  • 存储:MyISAM 的索引和数据是分开存储的。索引的叶子节点包含指向数据行的指针,而不是数据行本身。
  • 特点:
    • 性能优化:MyISAM 支持压缩索引,这可以减少索引文件的大小,提高磁盘空间的利用率。
    • 全文索引:MyISAM 支持全文索引,这在处理大量文本数据时非常有用。
    • 写操作效率:由于数据和索引分离,MyISAM 在写操作上通常比 InnoDB 更快。

总结来说,InnoDB 和 MyISAM 在索引的存储方式和内部操作上存在显著差异。InnoDB 的聚簇索引和二级索引设计使其更适合事务处理和多用户并发访问,而 MyISAM 的非聚簇索引和全文索引支持使其在特定的读密集型应用中表现更佳。覆盖索引是优化查询性能的重要手段,通过创建合适的索引,可以显著提高数据库的查询效率。

若有错误与不足请指出,关注DPT一起进步吧!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/59312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

淘宝有哪些API是用来获取商品列表的?(商品id列表)

淘宝商品详情接口item_get是通过商品id或者商品链接来获取商品详情数据的,但是不少客户是没有商品id的,这时需要通过接口来拿到商品id。 可以获取商品id的API有: item_search 通过关键字搜索商品列表 item_search_shop 获取店铺所有商品列…

拾光云影 3.3.0 | 高清秒播电视直播,支持IPV4,几千频道

拾光云影是一款Ipv4通用版电视直播APP,界面熟悉但有所改进,操作布局类似TVbox。新增了功能按钮页,提供更多功能。频道清晰,加载速度快,支持港澳台等特殊频道,大部分频道均可秒播。软件内置了直播接口&#…

【HTML】——VSCode 基本使用入门和常见操作

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 零:HTML开发工具VSCode的使用 1:创建项目 2:创建格式模板&#x…

Redis数据库测试和缓存穿透、雪崩、击穿

Redis数据库测试实验 实验要求 1.新建一张user表,在表内插入10000条数据。 2.①通过jdbc查询这10000条数据,记录查询时间。 ②通过redis查询这10000条数据,记录查询时间。 3.①再次查询这一万条数据,要求根据年龄进行排序&#…

Pyecharts使用本地文件绘制美国地图

访问我的github仓库outer_resources中的USA.json文件: big_data_analysis/outer_resources/USA.json at main Just-A-Freshman/big_data_analysis 保存到当前目录下; 随后运行代码: from pyecharts import options as opts from pyecharts.charts import Map from pyechar…

学习党的二十大精神,推动科技创新和发展

党的二十大提出了“创新是引领发展的第一动力”的重要思想,这也是我一直以来坚持的理念。在工作中,注重培养自己的创新精神和实践能力,不断探索前沿科技,提高自己的工作能力和科技创新水平。 网络安全建设是保障国家能源安全、提升…

LaTeX 中如何实现空格、空行与换行

诸神缄默不语-个人CSDN博文目录 在 LaTeX 中,空格和换行的处理方式与普通文本编辑器不同。本文将详细讲解 LaTeX 中如何插入空格、空行和换行,帮助大家更灵活地排版。 文章目录 1. 空格特殊空格符号使用 \hspace 插入水平空格使用 \quad 和 \qquad 2. 空…

zabbix 7.0 安装(服务器、前端、代理等)

https://www.zabbix.com/download 使用上面的地址,按教程执行命令安装

andrular输入框input监听值传递

效果图&#xff1a; step1: E:\projectgood\ajnine\untitled4\src\app\apple\apple.component.html <button mat-button (click)“openDialog()”>Open dialog step2: E:\projectgood\ajnine\untitled4\src\app\apple\apple.component.ts import {Component, inject}…

考公人数攀升?地信、测绘、地质、遥感等专业,能报考哪些单位

近年来&#xff0c;考公人数持续飙升&#xff0c;国考报名人数更逐年攀升。2025年国家公务员考试共有341.6万人通过资格审查&#xff0c;报录比达86:1。国考报名人数再创新高。 国家公务员考试时间安排 地理学相关岗位分析 地信属于地理科学类&#xff0c;测绘类中不包括地信&…

Git操作命令

Git操作命令 1、删除未加入git的文件 1、删除未加入git的文件 D:\Idea_Workspace\rightcloud-v397\rightcloud-schedule>git clean -f -d -n Would remove src/main/java/cn/com/cloudstar/rightcloud/schedule/system/task/push/S.java Would remove src/main/java/cn/com…

如何设置定时关闭或启动整个docker而不是某个容器

如果你想定时关闭和启动整个Docker服务&#xff0c;而不是单个容器&#xff0c;可以使用系统级别的定时任务&#xff08;如Cron&#xff09;来实现。以下是如何操作的具体步骤&#xff1a; 使用Cron来定时关闭和启动Docker服务 打开Cron表: 打开终端。输入 crontab -e 编辑当前…

Pr 视频效果:超级键

视频效果/键控/超级键 Keying/Ultra Key 超级键 Ultra Key效果是 Premiere Pro 中功能强大的抠像工具&#xff0c;主要用于绿幕/蓝幕抠像。通过选择要抠除的颜色&#xff08;通常是绿幕或蓝幕的颜色&#xff09;&#xff0c;即可以将该颜色的像素设为透明&#xff0c;实现主体与…

24-11-1-读书笔记(三十一)-《契诃夫文集》(五)下([俄] 契诃夫 [译] 汝龙)生活乏味但不乏魅力。

文章目录 《契诃夫文集》&#xff08;五&#xff09;下&#xff08;[俄] 契诃夫 [译] 汝龙&#xff09;生活乏味但不乏魅力。目录阅读笔记总结 《契诃夫文集》&#xff08;五&#xff09;下&#xff08;[俄] 契诃夫 [译] 汝龙&#xff09;生活乏味但不乏魅力。 休息&#xff0c…

戴尔电脑 Bios 如何进入?Dell Bios 进入 Bios 快捷键是什么?

BIOS&#xff08;基本输入输出系统&#xff09;是计算机启动时运行的第一个程序&#xff0c;它负责初始化硬件并加载操作系统。对于戴尔电脑用户来说&#xff0c;有时可能需要进入 BIOS 进行一些特定的设置调整&#xff0c;比如更改启动顺序、调整性能选项或解决硬件兼容性问题…

rediss数据结构及其底层实现

Redis 是一个基于内存的高性能键值对数据库&#xff0c;它支持多种数据结构&#xff0c;每种数据结构都有其特定的底层实现。以下是Redis中一些主要数据结构及其底层实现&#xff1a; 字符串&#xff08;String&#xff09;&#xff1a; Redis的字符串类型使用简单动态字符串&a…

如何正确进行activemq服务搭建及性能调优?

引言 ActiveMQ是一个开源的消息中间件&#xff0c;广泛应用于企业级应用中&#xff0c;以实现异步通信和解耦。 随着分布式系统和微服务架构的普及&#xff0c;消息中间件的需求日益增加。 本文将详细介绍如何正确搭建ActiveMQ&#xff0c;并进行性能调优&#xff0c;以满足…

【C++】内存管理(二):operator new/delete

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解C的operator new/delete&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 目录 1 new/delete的底层2 new/delete的底层调用顺序3 delete[ ]调用析构函数的次数…

transformers 框架使用详解,bert-base-chinese

以 bert-base-chinese 模型为例&#xff0c;模型目录 model_name "C:/Users/Administrator.DESKTOP-TPJL4TC/.cache/modelscope/hub/tiansz/bert-base-chinese" bert-base-chinese 模型大小只有400多兆&#xff0c;参数的量级在百万级别&#xff0c;与现在动辄几十…

acmessl.cn提供接口API方式申请免费ssl证书

目录 一、前沿 二、API接口文档 1、证书可申请列表 简要描述 请求URL 请求方式 返回参数说明 备注 2、证书申请 简要描述 请求URL 请求方式 业务参数 返回示例 返回参数说明 备注 3、证书查询 简要描述 请求URL 请求方式 业务参数 返回参数说明 备注 4、证…