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 空间占用大小。

目录
相关文章
|
16天前
|
数据采集 自动驾驶 算法
8类道路交通车辆目标检测数据集(2600张)|YOLO训练数据集 智慧交通 自动驾驶 车流统计 车辆识别
本数据集含2600张真实道路图像,精细标注8类车辆(公交、重型/中型/牵引卡车、皮卡、轿车、两轮车、面包车),YOLO格式,覆盖城市/城郊多场景,支持智慧交通、自动驾驶、车流统计等任务,开箱即用。
226 10
|
14天前
|
人工智能 自然语言处理 算法
"大三考下CAIE一级人工智能认证,我秋招时吃到了红利"
CAIE注册人工智能工程师(一级)是专为大学生设计的AI能力认证,零基础可考、门槛低、贴合秋招需求。覆盖AI基础、应用与工程认知,非算法岗(产品/运营/数据等)同样适用,获电信、腾讯、平安等百家企业认可,助你在简历筛选和面试中脱颖而出。
|
1月前
|
人工智能 安全 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助理,安全稳定、计费可控。
237 4
|
1月前
|
人工智能 安全 机器人
阿里云无影云电脑部署OpenClaw图文教程:QQ集成+千问Qwen3.6-Plus配置+新手避坑指南
2026年,OpenClaw(原Clawdbot)作为开源AI代理自动化框架的标杆产品,凭借轻量化部署、跨平台兼容、大模型生态完善、即时通讯集成便捷的核心优势,成为个人与团队搭建专属智能助手的首选方案。阿里云无影云电脑以云端桌面、随时随地访问、环境预置、安全稳定的特性,为OpenClaw提供7×24小时不间断运行的理想环境,彻底解决本地部署断电、断网、设备性能不足的痛点。搭配QQ深度集成,用户可通过QQ单聊、群聊随时随地与AI助手交互;配合阿里云千问Qwen3.6-Plus高性能大模型,实现智能对话、代码生成、任务自动化、文档处理、信息检索等全场景能力。本文全程提供可直接复制的代码命令,从阿里
572 10
|
4天前
|
监控 安全 程序员
初级程序员必备的十大技能之基础 Linux 命令(四)
教程来源 http://ltglu.cn/ 本节介绍五大核心网络工具:SSH(远程登录、命令执行与端口转发)、SCP(安全文件传输)、cURL(HTTP请求、API调试与下载)、Wget(断点续传与递归下载)及netstat/ss(网络连接与端口监控),涵盖常用命令与实用技巧。
|
1月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
35484 70
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
4天前
|
存储 关系型数据库 MySQL
7-事务控制篇-4
InnoDB支持事务、行级锁、外键及聚簇索引,具备崩溃恢复能力,是MySQL 5.5+默认引擎;MyISAM不支持事务与行锁,仅表级锁,存行数、用非聚簇索引,适合读多写少场景。
52 5
|
4天前
|
负载均衡 Java Nacos
5-微服务篇-2
Spring Boot核心注解为@SpringBootApplication,由@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan组成;跨域问题可通过@CrossOrigin注解、WebMvcConfigurer配置或网关(如Spring Cloud Gateway)统一处理;项目使用Spring Boot 2.3.4等主流版本及Nacos、Sentinel等云原生组件。
72 5
|
4天前
|
消息中间件 缓存 安全
6-MQ篇-1
本项目广泛使用RabbitMQ实现异步解耦通信,涵盖内容审核、短信发送、数据同步等8类场景;选用因其丰富模式、高可用集群及优秀性能;通过Confirm/Return机制、三重持久化与手动ACK保障消息零丢失;结合幂等设计与状态表补偿应对重复消费与堆积问题。(239字)
49 1
|
4天前
|
IDE 编译器 开发工具
4轴运动控制源代码(STM32 + GRBL 1.1移植版)
4轴运动控制源代码(STM32 + GRBL 1.1移植版)
51 1