7-事务控制篇-2

简介: InnoDB与MyISAM均采用B+树索引,但实现迥异:InnoDB主键索引为聚簇索引,叶子节点存完整数据;MyISAM为非聚簇索引,索引与数据分离,叶子仅存行地址。辅助索引方面,InnoDB存主键值(需回表),MyISAM直接存物理地址。(239字)

6.简述InnoDB与MyISAM实现索引方式的区别?

首先两者都是用的是B+树索引,但二者的实现方式不同。

对于主键索引,InnoDB中叶子节点保存了完整的数据记录,而MyISAM中索引文件与数据文件是分离的,叶子节点上的索引文件仅保存了数据记录的地址.

对于辅助索引,InnoDB中辅助索引会对主键进行存储,查找时,先通过辅助索引的B+树在叶子节点获取对应的主键,然后使用主键在主索引B+树上检索操作,最终得到行数据;MyISAM中要求主索引是唯一的,而辅助索引可以是重复的,主索引与辅助索引没有任何区别,因此,MyISAM中索引检索的算法为首先按照B+Tree搜索算法搜索索引,如果指定的Key存在,则取出其data域的值,然后以data域的值为地址,读取相应数据记录。

7.简述什么是聚簇索引与非聚簇索引?

  • 聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据。
  • 非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行MyISAM通过key_buffer把索引先缓存到内存中,当需要访问数据时(通过索引访问数据),在内存中直接搜索索引,然后通过索引找到磁盘相应数据,这也就是为什么索引不在key buffer命中时,速度慢的原因。

8.主键索引是聚集索引还是非聚集索引?

聚集索引决定了数据库的物理存储结构,而主键只是确定表格逻辑组织方式。这两者是不一样的

在InnoDB下主键索引是聚集索引,在MyISAM下主键索引是非聚集索引。

9.简述InnoDB为什么使用自增id作为主键?

MySQL底层使用是使用数据页为单位来存储数据的,一个数据页大小默认为16K,当数据页满了,就会申请新的数据页进行存储数据。

如果主键为自增 id 的话,mysql 在写满一个数据页的时候,直接申请另一个新数据页接着写就可以了。

如果主键是非自增 id,为了确保索引有序,mysql 就需要将每次插入的数据都放到合适的位置上。当往一个快满或已满的数据页中插入数据时,新插入的数据会将数据页写满,mysql 需要申请新的数据页,并且把上个数据页中的部分数据挪到新的数据页上。这就造成了页分裂,这个大量移动数据的过程是会严重影响插入效率。

10.简述为什么主键越小越好?

主键占用空间越大,每个页存储的主键个数越少,路树就越少,B+树的深度会边长,导致IO次数会变多。 辅助索引的叶子节点上保存的是主键 id 的值,如果主键 id 占空间较大的话,那将会成倍增加 mysql 空间占用大小。

目录
相关文章
|
1月前
|
人工智能 自然语言处理 算法
"大三考下CAIE一级人工智能认证,我秋招时吃到了红利"
CAIE注册人工智能工程师(一级)是专为大学生设计的AI能力认证,零基础可考、门槛低、贴合秋招需求。覆盖AI基础、应用与工程认知,非算法岗(产品/运营/数据等)同样适用,获电信、腾讯、平安等百家企业认可,助你在简历筛选和面试中脱颖而出。
|
2月前
|
人工智能 安全 Linux
阿里云OpenClaw镜像太香了!开箱即用、内置Skills、分钟级部署AI龙虾助理
阿里云OpenClaw镜像基于Alibaba Cloud Linux 3 LTS,开箱即用,阿里云龙虾官方部署链接:https://t.aliyun.com/U/vFiCUH 预装Docker、VS Code等工具及agent-browser等增强Skills,支持钉钉/飞书等多渠道集成与qwen3.5-plus等多模态模型,分钟级部署本地AI助理,安全稳定、计费可控。
276 4
|
1月前
|
数据采集 自动驾驶 算法
8类道路交通车辆目标检测数据集(2600张)|YOLO训练数据集 智慧交通 自动驾驶 车流统计 车辆识别
本数据集含2600张真实道路图像,精细标注8类车辆(公交、重型/中型/牵引卡车、皮卡、轿车、两轮车、面包车),YOLO格式,覆盖城市/城郊多场景,支持智慧交通、自动驾驶、车流统计等任务,开箱即用。
449 10
|
24天前
|
监控 安全 程序员
初级程序员必备的十大技能之基础 Linux 命令(四)
教程来源 http://ltglu.cn/ 本节介绍五大核心网络工具:SSH(远程登录、命令执行与端口转发)、SCP(安全文件传输)、cURL(HTTP请求、API调试与下载)、Wget(断点续传与递归下载)及netstat/ss(网络连接与端口监控),涵盖常用命令与实用技巧。
|
24天前
|
存储 关系型数据库 MySQL
7-事务控制篇-4
InnoDB支持事务、行级锁、外键及聚簇索引,具备崩溃恢复能力,是MySQL 5.5+默认引擎;MyISAM不支持事务与行锁,仅表级锁,存行数、用非聚簇索引,适合读多写少场景。
114 5
|
24天前
|
负载均衡 Java Nacos
5-微服务篇-2
Spring Boot核心注解为@SpringBootApplication,由@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan组成;跨域问题可通过@CrossOrigin注解、WebMvcConfigurer配置或网关(如Spring Cloud Gateway)统一处理;项目使用Spring Boot 2.3.4等主流版本及Nacos、Sentinel等云原生组件。
174 5
|
24天前
|
IDE 编译器 开发工具
4轴运动控制源代码(STM32 + GRBL 1.1移植版)
4轴运动控制源代码(STM32 + GRBL 1.1移植版)
128 1
|
24天前
|
消息中间件 存储 缓存
6-MQ篇-4
Kafka高可用靠集群、分区副本与消费者重平衡;高性能源于顺序读写、零拷贝、页缓存等5大设计;数据清理支持按时间(默认7天)或大小(默认1GB)策略;点对点与发布订阅则通过消费者组机制灵活实现。(239字)
106 2
|
2天前
|
人工智能 供应链 BI
数据指标是什么?终于有人把数据指标体系讲明白了
本文深度解析企业数据指标体系的核心价值与落地路径:它不是技术堆砌,而是统一业务语言、打通部门壁垒、支撑AI落地的“数字化中枢”。从目标拆解、口径统一到分级应用,手把手教你构建看得清、用得上、管得住的指标体系——数字化转型走深,从此开始。
|
24天前
|
消息中间件 容灾
6-MQ篇-2
本文详解RabbitMQ延迟队列(TTL+死信交换机/延迟插件)、消息过期设置(队列级与消息级)、死信成因及死信交换机绑定方式,并介绍其高可用机制:普通集群(元数据共享)与镜像集群(全量数据同步、主从容灾)。
106 3