华为OD技术面真题 - 数据库MySQL - 2
文章目录介绍一下MySQL查询语句执行过程简述一下MySQL的架构说一下你理解的数据库索引分别说说索引的优点和缺点说说MySQL中索引类型如何创建合适的索引怎么优化查询速度介绍一下MySQL查询语句执行过程执行SQL查询语句会经过上述组件和步骤简单说说连接器进行身份认证和权限验证查询缓存执行查询语句的时候会先查询缓存如果存在缓存的话直接返回。分析器如果没有命中缓存SQL 语句就会经过分析器分析器说白了就是要先看你的 SQL 语句要干嘛再检查你的 SQL 语句语法是否正确。优化器对你执行SQL语句按照一定规则去优化保证以MySQL认为最优的方案去执行。执行器执行语句然后从存储引擎返回数据。简述一下MySQL的架构逻辑架构分为三层连接层客户端包含的服务包括连接处理、身份验证、确保安全性。核心功能层查询解析、分析、优化以及所有的内置函数解析所有跨存储引擎的功能都在这一层实现。 存储过程、触发器、视图等。存储引擎层:负责Mysql数据的存储和提取。服务器通过存储引擎 API和存储引擎通信屏蔽不同存储引擎差异。不同存储引擎之间不会相互通信只会简单相应服务器的请求。说一下你理解的数据库索引索引是一种用于快速查询和检索数据的数据结构其本质可以看成是一种排序好的数据结构。索引本质是用空间换时间。可以把数据库理解为一本书表数据相当于正文内容索引相当于目录。没有索引的情况下只能从头到尾扫表(全表扫描)有索引: 可以直接定位数据位置。针对不同查询查询场景有/无索引对比操作没有索引有索引单条查询全表扫描走索引O(log n)范围查询全表扫描顺序扫描排序临时排序利用索引排序分别说说索引的优点和缺点优点:大幅提升查询速度通过索引数据库可以大幅减少需要扫描的数据量直接定位到符合条件的记录从而显著加快数据检索速度减少I/O避免全表扫描减少读取数据减少磁盘I/O次数。优化排序、分组操作如果查询中的 ORDER BY 或 GROUP BY 子句涉及的列建有索引数据库往往可以直接利用索引已经排好序的特性避免额外的排序操作从而提升性能。缺点占用额外存储空间索引本质上时数据结构需要以本地文件/内存结构形式存储会额外占据空间。增删改时需要维护索引索引过多会降低写性能。说说MySQL中索引类型按照底层数据结构划分索引类型可分为BTREE索引MySQL 里默认和最常用的索引类型。只有叶子节点存储 value非叶子节点只有指针和 key。存储引擎 MyISAM 和 InnoDB 实现 BTree 索引都是使用 BTree。哈希索引类似键值对的形式一次即可定位。。全文索引对文本的内容进行分词进行搜索。目前只有CHAR、VARCHAR、TEXT列上可以创建全文索引。一般不会使用效率较低。R-TREE索引MyISAM 存储引擎支持空间数据索引(R-Tree)可以用于地理数据存储。空间数据索引会从所有维度来索引数据可以有效地使用任意维度来进行组合查询。按照底层存储方式角度进行划分聚簇索引索引结构和数据一起存放的索引InnoDB 中的主键索引就属于聚簇索引。非聚簇索引索引结构和数据分开存放的索引二级索引辅助索引就属于非聚簇索引。MySQL 的 MyISAM 引擎不管主键还是非主键使用的都是非聚簇索引。按照应用维度划分主键索引加速查询 列值唯一不可以有 NULL 表中只有一个。普通索引仅加速查询。唯一索引加速查询 列值唯一可以有 NULL。联合索引多列值组成一个索引专门用于组合搜索其效率大于索引合并。前置索引对文本的前几个字符创建索引相比普通索引建立的数据更小因为只取前几个字符(区分度高就行)。全文索引文本的内容进行分词进行搜索。目前只有CHAR、VARCHAR、TEXT列上可以创建全文索引。一般不会使用效率较低。覆盖索引属于联合索引中一种特例一个索引包含或者说覆盖所有需要查询的字段的值。如何创建合适的索引主要考虑点如下查询是否频率索引的本质目的是加快查询效率如果一个表需要进行高频查询适合创建索引偶尔进行查询不一定需要创建索引。考虑表数据对于小规模数据的表大部分情况下全表扫描比创建索引会更快。表数据大小是是否需要创建索引要考虑的一个关键因素。字段本身是否创建索引选择作为索引的字段需要区分度高(区分度 不重复值 / 总记录数)高区分度(用户ID、订单号等)适合创建索引低区分度不适合创建索引。字段本身需要有where、on、join等应用场景如果根本不会使用区分度高也是不需要创建索引的。字段是否经常更新更新会导致索引频繁维护影响写性能。经常update的字段不一定适合创建索引。考虑联合索引如果两个/多个字段总是一起频繁进行查询可以考虑创建联合索引创建联合索引字段顺序可从下面角度进行考虑最左前缀原则高区分度在前等值条件在前范围条件在后考虑覆盖索引索引不能包含SELECT 所有查询数据时在InnoDB中二级索引定位到具体数据需要回表查询主键索引获取全部数据再返回需要的数据。如果二级索引能包含所有需要查询的数据则不需要进行回表查询。怎么优化查询速度减少请求的数据量只选择必须要列SELECT只选择必要的字段尽量避免使用SELECT *只返回必要的行使用LIMIT语句来限制返回的数据。缓存重复查询数据使用缓存可以避免在数据库中进行查询特别在要查询的数据经常被重复查询时缓存带来的查询性能提升将会是非常明显的。减少MySQL服务器扫描的行数最有效的方式使用索引来减少扫描行数。对于不同查询场景创建合适的索引。当表数据量比较大时针对查询场景考虑对表进行分库分表限制查询数据量。避免使用大查询一个大查询如果一次性执行的话可能一次锁住很多数据、占满整个事务日志、耗尽系统资源、阻塞很多小的但重要的查询。可考虑再应用层代码进行大查询拆分执行。避免大连接查询将一个大连接查询分解成对每一个表进行一次单表查询然后将结果在应用程序中进行关联。

相关新闻

Java 编程语言单词汇总----step-25

Java 编程语言单词汇总----step-25

step-25 掌握 1、lambda[lmdə] n. 希腊字母的第 11 个 2、functional[fʌŋkʃənl] adj. 功能的 3、interface[intəfeis] n. 界面;接口;接触面 4、consumer[kənsju:mə] n. 消费者;用户,顾客 5、supplier[səplaɪə] n. 供应…

2026/7/3 16:33:23 阅读更多 →
【2024美赛C题】O奖论文翻译(附图片)2410482

【2024美赛C题】O奖论文翻译(附图片)2410482

目录 摘要 1. 引言 1.1 研究背景 1.2 问题重述 1.3 研究工作 1.4 数据来源 2. 假设与论证 3. 符号说明 4. 任务 1:比赛进程中的选手表现评估 4.1 模型一:马尔可夫模型预测胜率 4.1.1 发球得分机制说明 4.1.2 马尔可夫模型的建立与预测结果 …

2026/7/5 16:19:47 阅读更多 →
情感驱动:为什么幽默感让测试员更受欢迎?

情感驱动:为什么幽默感让测试员更受欢迎?

在软件测试的日常工作中,技术能力固然重要,但情感因素往往被忽视。本文从专业角度剖析幽默感如何成为测试员的“隐形武器”,使其在团队中更受欢迎。幽默感不仅能缓解高压环境,还能优化沟通、提升协作效率,最终驱动项目…

2026/7/5 1:19:51 阅读更多 →

最新新闻

完整数字通信链路仿真(哈夫曼 +(7,4) 汉明码 + BSC 信道)【P124302151陈明】

完整数字通信链路仿真(哈夫曼 +(7,4) 汉明码 + BSC 信道)【P124302151陈明】

一、摘要 本文搭建一套端到端简易数字通信系统,完整流程:随机信源序列→哈夫曼无损压缩(信源编码)→(7,4) 汉明码信道纠错编码→BSC 二进制对称信道加噪声传输→汉明译码纠错→哈夫曼译码恢复原始信源。通过改变 BSC 信道交叉概率…

2026/7/7 3:04:27 阅读更多 →
别再等别人盖章了:成年人最顶级的自由,是自己给自己打分

别再等别人盖章了:成年人最顶级的自由,是自己给自己打分

高铁穿过一段长长的隧道,车厢里暗了下来。车窗变成了一面模糊的镜子。我盯着镜子里那张略显疲惫的脸看了两秒,然后按熄了手机屏幕。就在刚刚,我还在反复刷新微信,等着下午刚汇报完的客户大老板给个反馈。十分钟没回,我…

2026/7/7 3:04:27 阅读更多 →
珍惜作为“牛马”的最后光阴?优必选,抛出了一个公关“核弹”

珍惜作为“牛马”的最后光阴?优必选,抛出了一个公关“核弹”

作者:Evin编辑:刘致呈审核:徐徐出品:互联网江湖这两年,机器人行业发展的非常快。从上春晚秀“舞技”,到跑马拉松破人类记录,再到进入电力、矿山等高危场景完成巡检等任务,机器人的价…

2026/7/7 3:02:26 阅读更多 →
AI视频生成技术在游戏特效制作中的应用实践

AI视频生成技术在游戏特效制作中的应用实践

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 这次我们来看一个基于AI视频生成技术的"恐惧魔王 吞噬魔法"特效测试项目。这个项目展示了如何利用AI技术实现游戏角色特效的…

2026/7/7 2:40:13 阅读更多 →
本地AI部署实战指南:从环境配置到性能优化的完整解决方案

本地AI部署实战指南:从环境配置到性能优化的完整解决方案

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 今天我们来聊聊一个让很多开发者头疼的问题:本地AI部署。虽然标题提到了"一人公司"的困境,但本文重…

2026/7/7 2:38:12 阅读更多 →
Claude偷改了你一行代码

Claude偷改了你一行代码

摘要:2026 年 6 月底,Reddit 开发者逆向 Claude Code 客户端,发现 Anthropic 用隐写术在中国用户请求里嵌入隐藏标记——读系统时区、比对 147 个加密域名、在日期字符串里替换 Unicode 字符。这段代码静默运行三个月,从未披露。三…

2026/7/7 2:36:12 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻