6.27_JAVA_面试(被抽到了)

1.MYSQL支持的存储引擎有哪些, 有什么区别 ? 

        In-no-DB(默认):支持事务安全(数据库运行时,能保证数据的一致性、完整性),支持表行锁,支持物理和逻辑外键。占用磁盘空间大。

        MEMORY:只支持逻辑外键,只支持表锁,不支持事务安全

        My-I-SAM:只支持逻辑外键,只支持表锁,不支持事务安全

       

2 了解过Mysql的索引嘛 ? 

索引能帮助MySQL高效获取数据。如果查找某个字段的话,MYsql查询很慢,因为它是磁盘读取以及时间复杂度是On,但是我们通过索引能够大大加快寻找这个数据的速度。索引在Mysql的底层是构建了一个B+🌳,把这个字段的数据放进去了。

它底层是通过构建B+树把建立的索引字段给纳入进去了。

B和B+树区别:

1️⃣B每个节点都存储数据,但B+只有叶子节点下一层存储数据

B+树非叶节点存的数据是这个数据指向的节点的最大值。如,上图第二行第一个节点中的15指向的是第三行第一个节点的最大值15.

B树的叶子节点为空节点。B+树叶子节点保存的是数据。

3 索引的底层数据结构了解过嘛 ?  

        如上,123是同一个答案。

4 什么是聚簇索引什么是非聚簇索引 ?

InnoDB索引引擎中,分为二级索引和聚集索引。

聚集索引:数据和索引存到了一起,必须有,且只有一个。字段通常唯一

二级索引:数据和索引分开的。

聚集索引的叶子节点存储的是行数据,但是二级索引存储的是行数据的主键id、索引字段所对应的数据。不存行数据是为了减少数据量。可以有多个。

5  知道什么是回表查询嘛 ? 

要查询的字段,不在构建的索引的字段之内。

通常一个二级索引,最后回到聚集索引的情况叫做会表。比如search * from user where name = 'Amy'             

其中name已经创立了二级索引,但是由于二级索引的叶子是主键ID,找不到*要查询的name为Amy的数据的所有字段所对应的值,只能回到聚集索引表,故称回表。 

6  索引创建原则有哪些?

1️⃣一般对经常查询,且数据量大的表建立索引。因为索引能大大加快查找速度。

2️⃣如果搜的比较少,或者表很小的时候可以不建立索引。因为索引会消耗磁盘空间。

3️⃣尽量使用字段空间小的做索引,比如char100比char10大,一般选char10做索引。

4️⃣前缀检索:如果要搜索的字段所对应的数据都比较大,比如字段“备注”里面存的数据都非常长。一般会只检索字段前面的若干字符。

5️⃣尽量采用区分度高的做索引,区分度越高,索引就越常用。

6️⃣使用复合索引时不能跳过对应的条件。我们使用复合索引需要先创建复合索引,如果创建了INDEX(A,B,C,D),我们where A C B D,顺序不同可以跑通,但是如果where BCD去掉了A,那么ABCD都跑不了。如果去掉了B,那么BCD都跑不了。这叫最左前缀匹配原则。很重要。

7️⃣一般建立联合索引,多放几个常用的区分度达到额字段进去,避免索引到超出联合索引包含的字段时回表。

8️⃣一般常被where、group by、order by的字段建立索引。

7 知道什么是左前缀原则嘛 ?

同上。复合索引。可以顺序不同,但是不能跳过

8 知道什么叫覆盖索引嘛 ? 

和回表相反。意思是我们要查的字段,包含在索引的字段之内

比如

CREATE INDEX idx_username ON users(username, email, age);//创建了索引,索引包含字段username、email、age
SELECT username, email FROM users WHERE username = 'john';//我们要查的字段是只有上述的username和email,被完全包含在了里面

9 索引是越多越好嘛? 什么样的字段需要建索引, 什么样的字段不需要 ? 

索引不是越多越好,建立索引也会消耗空间,而且索引字段变多查找效率也会降低。

一般常被where、group by、order by的字段建立索引。不常用的不用建。

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

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

相关文章

YOLOv13震撼发布:超图增强引领目标检测新纪元

YOLOV13最近发布了,速速来看。 论文标题:YOLOv13:融合超图增强的自适应视觉感知的实时目标检测 论文链接:https://arxiv.org/pdf/2506.17733 代码链接:https://github.com/iMoonLab/yolov13 话不多说,直…

Docker错误问题解决方法

1. Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) https://zhuanlan.zhihu.com/p/24228872523 2. no configuration file provided: …

大模型在恶性心律失常预测及治疗方案制定中的应用研究

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与方法 1.3 研究创新点 二、大模型技术概述 2.1 大模型基本原理 2.2 常见大模型类型及特点 2.3 大模型在医疗领域的应用现状 三、心律失常的术前预测与准备 3.1 术前心律失常预测的重要性 3.2 大模型在术前预测中的应…

【视频芯片选型】

一、边缘 AI 芯片选型逻辑与未来趋势 (一)嘉楠 K230、全志 V853、瑞芯微 RK3588 对比选型 核心场景适配 嘉楠 K230: 适合低功耗边缘 AI场景,如智能家居中控(支持语音 视觉双模态交互)、电池供电设备&#…

JavaScript---DOM篇

1. DOM 概念 文档对象模型:将 HTML 文档映射为树形结构,JS 可通过 DOM 操作页面。 2. 获取元素 document.getElementById(id) document.querySelector(CSS选择器) document.querySelectorAll() 获取多个 3. 操作元素 属性操作: element.getAt…

第三次课:实验室安全用电

触电的危害 触电的方式 安全用电与预防措施 触电急救 时间就是生命 安全自省 安全用电常识补充

NV064NV065美光固态闪存NV067NV076

美光NV系列固态闪存技术深度解析与应用指南 技术架构革新:垂直堆叠与浮栅技术的突破 美光NV系列固态闪存的核心竞争力在于其232层NAND闪存技术,通过垂直堆叠工艺将存储单元层层叠加,如同在指甲盖面积内构建超过200层“数据楼宇”&#xff0…

设计模式精讲 Day 18:备忘录模式(Memento Pattern)

【设计模式精讲 Day 18】备忘录模式(Memento Pattern) 文章内容 开篇 在“设计模式精讲”系列的第18天,我们来探讨备忘录模式(Memento Pattern)。这是一种行为型设计模式,其核心思想是在不破坏封装性的前…

SpringCloud系列(35)--使用HystrixDashboard进行服务监控

前言:在上一节中我们使用了Hystrix进行服务熔断处理,至此关于Hystrix的使用到此为止,本节内容关注的是如何使用HystrixDashboard对调用进行监控。 1、HystrixDashboard概述 Hystrix提供的准实时的调用监控(HystrixDashboard),Hys…

爬虫简单实操2——以贴吧为例爬取“某吧”前10页的网页代码

需求是将贴吧的【某个吧】里面【n页】的网页代码爬取下来,保存至本地 首先我们要思考这个贴吧爬虫的框架,要有方法可以构造url列表(就可以一次获取多个url),能请求获取相应,能把html保存到本地。 import …

webpack5 css-loader 配置项中的modules

在 Webpack 的 css-loader 中,modules 选项是一个核心配置,它直接关系到 CSS 的模块化处理方式。下面从概念、原理、使用场景和实践技巧四个方面详细解析: 概念解析:CSS Modules 是什么? CSS Modules 是一种让 CSS 类…

springboot+Vue驾校管理系统

概述 基于springbootVue开发的驾校管理系统。该系统采用主流技术栈开发,功能完善,既包含用户端便捷的操作界面,又具备强大的后台管理功能。 主要内容 一、用户端功能模块 ​​核心功能导航​​: 首页展示驾校推荐信息及最新动态…

#华为鲲鹏#华为计算#鲲鹏开发者计划2025#

#华为鲲鹏#华为计算#鲲鹏开发者计划2025# <新版开发者计划>的内容链接&#xff1a;鲲鹏开发者计划2025-鲲鹏社区 通过学习毕昇编译器整体介绍&#xff0c;以及安装使用流程、新增特性、调优工具的使用及相关指导文件获取&#xff0c;对毕异编译器有了更深的认识。 我刚…

小程序学习笔记:声明式导航的多种玩法

在小程序开发中&#xff0c;页面导航是实现用户流畅交互体验的关键环节。今天&#xff0c;咱们就一起来深入学习小程序里通过声明式导航实现页面跳转、切换 tab 页、后退等功能的技巧&#xff0c;还会附上详细代码示例&#xff0c;让大家轻松掌握&#xff01; 一、什么是页面导…

Linux中《动/静态库原理》

目录 目标文件ELF文件ELF从形成到加载轮廓ELF形成可执行readelf命令ELF可执行文件加载 理解连接与加载静态链接ELF加载与进程地址空间虚拟地址/逻辑地址 重新理解进程虚拟地址空间 动态链接与动态库加载进程如何看到动态库进程间如何共享库的动态链接动态链接到底是如何工作的&…

Android大图加载优化:BitmapRegionDecoder深度解析与实战

在移动端开发中&#xff0c;超大图片加载一直是性能优化的难点。本文将深入剖析BitmapRegionDecoder原理&#xff0c;提供完整Kotlin实现方案&#xff0c;并分享性能调优技巧。 一、为什么需要大图加载优化&#xff1f; 典型场景&#xff1a; 医疗影像&#xff1a;2000015000…

基于ApachePOI实现高德POI分类快速导入PostgreSQL数据库实战

目录 前言 一、高德POI分类简介 1、数据表格 2、分类结构 二、从Excel导入到Postgresql 1、Excel解析流程 2、Mybatis批量导入 3、数据入库 三、总结 前言 在大数据与地理信息深度交融的当下&#xff0c;地理信息系统&#xff08;GIS&#xff09;的触角已延伸至各个领域…

如何打造Apache Top-Level开源时序数据库IoTDB

引言 数据与时间结合后&#xff0c;便拥有了生命。在金融、系统日志、工业产线和智能设备等领域&#xff0c;时序数据每毫秒都在不断产生。管理这些海量时序数据需要专业的数据库系统。时序数据库产品正逐渐受到市场的关注&#xff0c;本文将分享如何通过开源的方式&#xff0…

高并发内存池实战指南

项目源码&#xff1a;https://gitee.com/kkkred/thread-caching-malloc 目录 一、脱离new&#xff1a;高并发内存池如何替代传统动态分配 1.1 new的痛点&#xff1a;碎片、延迟与锁竞争 1.2 高并发内存池的替代方案&#xff1a;分层预分配无锁管理 二、大内存&#xff08;…

基于springboot+vue的数字科技风险报告管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat12开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.3.9 系统展示 管理员登录 管理…