最新的经典mysql面试题及答案
互联网产品必然是需要有架构的,架构包含接入层、储蓄层、逻辑处理等等,其中存储层承载着数据落地和持久化的任务,同时给逻辑处理层提供数据查询功能支持。而一提到储蓄层必然就要说数据库了,对于数据库的掌握也是软件工程师面试时必考的知识点。
1.简单描述mysql中, 索引、主键、唯一索引、联合索引的区别,对数据库的性能有什么影响(从读写两方面)
- 索引是一种特殊的文件,它们包含对数据表里所有记录的引用指针
- 索引的任务就是加快对数据的访问速度
- 普通索引允许被索引的列的数据包含重复值,如果索引的列不允许有重复值就可以使用唯一索引
- 主键索引是特殊的唯一索引,一张表中只能有一个主键索引,由primary key关键字定义
- 索引可以包含多个数据列,如index(columnA, columnB),就是联合索引
- 因为索引的存在,大大提高了数据库的查询效率,但是会降低增加、删除、修改表的速度,因为执行这些代码时还要操作索引文件
2. sql注入漏洞产生的原因,如何防止?
程序开发过程中没有规范书写sql语句,没有对特殊字符进行过滤都会导致sql注入的风险
使用orm可以有效的防止sql注入,sql语句书写尽量不要省略双引号和单引号,过滤掉关键词select update delete insert *等
3. 对于关系型数据库而言,索引是相当重要的概念,请回答索引相关的几个问题
索引的目的是什么?
- 快速访问数据表中的特定信息,提高检索速度
- 创建唯一索引,保证数据库表中每一行数据的唯一性
- 加速表与表之间的链接
索引对数据库系统的负面影响是什么?
创建索引和维护索引也需要耗费时间,这个时间随着数据量的增加而增大,索引需要占用物理空间,
不光是表需要占据数据空间,每个索引也需要占用物理空间,对表进行增、删、改的时候索引也需要动态维护,
这就降低了数据的维护速
为数据表建立索引的原则有哪些?
在最频繁使用的,用以缩小查询范围的字段上建立索引
在频繁使用的需要排序的字段上建立索引
什么情况下不宜建立索引?
对于查询中很少设计的列以及重复值很多的列,不宜设计索引
对于一些特护的类型不宜建立索引,比如text类型
为什么重复值很多的列不宜设计索引?
因为如果重复值特别多,比如性别列只有男和女,当我们为性别列建立了索引的话,
辅助索引每次查询男或女都会查询出一半左右的主键值,然后再拿着这一半的主键值去走聚簇索引(主索引),反而比全表扫描性能还低,
这种情况下就不能建立索引
4. 解释mysql外连接、内连接、与自连接的区别?
交叉连接:交叉连接又叫笛卡尔积表,它是指不使用任何条件,将一个表中的所有记录与另外一张表中的所有记录一一匹配
内连接:根据条件,只筛选两个表中都有的记录
外连接:分为左外连接、右外连接、全外连接
左外连接:左表为主表,左表中的记录全部显示,右表中所有匹配的记录显示,不匹配的记录显示为NULL
右外连接:与左相反
全外连接:mysql目前还不支持全外连接,但是可以使用union合并左外+右外=全外
5. mysql中的事务回滚机制概述
事务是用户定义的一个数据库操作序列,这些操作要么都做完,要么都不做,
事务回滚是将一个事务中对数据库的更新操作撤销,事务回滚需要通过InnoDB中的回滚日志undo log来实现
6. sql语言包括哪几部分? 每部分都有哪些操作关键字?
数据定义语言DDL:create/alter/drop table, create/drop index
数据操作语言DML: select insert update delete
数据控制语言DCL: grant revoke
数据查询语言DQL: select
7. 完整性约束包括哪些?
数据的完整性是指数据的精确性和可靠性
与表有关的约束,包括列约束:not null非空约束,primary key主键约束,foreign key外键约束, unique唯一约束等
8. 什么是锁?
加锁是实现数据库并发控制的非常重要的技术,分为读锁和写锁,当一个事务获取了读锁,
其它事务就只能获取读锁,不能获取写锁,
当一个事务优先获取了写锁,其它事务既不能获取读锁也不能获取写锁
但是mysql中又分为当前读和快照度,上面说的是当前读的情形,快照读的话不影响其它事务获取写锁
基本锁类型包括行级锁和表级所,InnoDB是行级锁,MyISAM是表级锁
9. 什么叫视图?游标是什么?
视图是一种虚拟的表,具有和物理表相同的功能,可以对视图进行增删改查操作,视图由一个或多个表的行列组成的集合
对视图表的修改不影响基本表,它使我们查询数据更容易
游标:对于查询出来的结果集作为一个单元来有效的处理,游标可以定在该单元中的特定行,
一般不使用游标,但是需要逐条处理的时候就需要使用游标
10. 如何通俗的理解三个范式?
第一范式是对属性的原子性约束,要求属性具有原子性,不可再分解;
第二范式是对记录的唯一性约束,要求记录有唯一标识,即实体的唯一性
第三范式是对字段冗余性约束,即任何字段不能由其它字段派生出来,它要求字段没有冗余
范式优点:减少数据冗余,使得更新快,体积小
缺点:查询需要多表关联查询,效率低
以上就是“最新的经典mysql面试题及答案”,你能回答上来吗?
相关文章:
最新的经典mysql面试题及答案
互联网产品必然是需要有架构的,架构包含接入层、储蓄层、逻辑处理等等,其中存储层承载着数据落地和持久化的任务,同时给逻辑处理层提供数据查询功能支持。而一提到储蓄层必然就要说数据库了,对于数据库的掌握也是软件工程师面试时…...
算法修炼之练气篇——练气十九层
博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的…...
记录一次Windows7操作系统渗透测试
#本文档仅用于实验,请勿用来使用恶意攻击! 《中华人民共和国网络安全法》中,恶意破坏计算机信息系统罪在第二十七条被明确规定,规定内容为: 第二十七条 任何单位和个人不得为达到破坏计算机信息系统安全的目的&#x…...
承诺协议:定义 构造
文章目录 安全性定义方案构造基于 OWP 存在性基于 DL 假设基于 OWF 存在性基于 DDH 假设 总结 安全性定义 承诺协议(Commitment Scheme)是一个两阶段的两方协议。一方是承诺者(Committer) C C C,另一方是接收者&#…...
二、easyUI中的layout(布局)组件
1.layout(布局)组件的概述 布局容器有5个区域:北、南、东、西和中间。中间区域面板是必须的,边缘的面板都是可选的。每个边缘区域面板都可以通过拖拽其边框改变大小,也可以点击折叠按钮将面板折叠起来。布局可以进行嵌…...
MySQL---聚合函数、字符串函数、数学函数、日期函数
1. 聚合函数 数据准备: create database mydb4; use mydb4;create table emp(emp_id int primary key auto_increment comment 编号,emp_name char(20) not null default comment 姓名,salary decimal(10,2) not null default 0 comment 工资,department char(20…...
边缘计算盒子有哪些?边缘计算应用场景
边缘计算(Edge Computing)是一种分布式计算模型,旨在将数据处理和计算功能从中心数据中心移到数据源附近的边缘设备上。它的目标是在接近数据生成的地方进行实时数据处理和分析,减少数据传输延迟和网络拥塞,提高应用程…...
Linux内核(十四)Input 子系统详解 IV —— 配对的input设备与input事件处理器 input_register_handle
文章目录 input_handle结构体详解配对的input设备与input事件处理器实例input核心层对驱动层和事件层之间的框架建立流程图 本文章中与input子系统相关的结构体可参考input子系统结构体解析 input函数路径:drivers/input/input.c input_handle结构体详解 input_ha…...
Vue2.x源码解析(三)
Platform 函数 Platform 函数是用于与各种浏览器和平台进行交互的函数,它为 Vue 提供了跨平台的支持,例如浏览器、Node.js 等。Platform 函数提供了一些常用的工具和配置项,例如事件的托管、资源请求和异步更新等。下面是 Platform 函数的伪…...
全面理解守护进程的基础概念,以及如何创建一个守护进程(系列文章第三篇)
前言 这个系列的文章有四篇,其目的是为了搞清楚: 进程,shell,shell进程,终端,控制终端,前台进程,后台进程,控制进程,前台进程组,后台进程组&#…...
Leetcode刷题日志5.0
目录 前言: 1.两数相加 2.无重复字符的最长子串 3.整数反转 4.删除链表的倒数第 N 个结点 前言: 今天我又来继续分享最近做的题了,现在开始进入我们快乐的刷题时间吧!(编程语言Python3.0,难度…...
母亲节:向世界上最伟大的母爱致敬
在这世间众多的亲情关系中,有一种关系无与伦比,毫不费力地凌驾于其他任何已知的地球关系之上。这种非凡的关系就是母亲与子女之间的关系。 母亲对家庭无尽的爱、奉献和忠诚使这份感情无价。为了向全球所有母亲表示敬意,母亲节在世界46个国家庆…...
Springboot +Flowable,各种历史信息如何查询(二)
一.简介 正在执行的流程信息是保存在以 ACT_RU_ 为前缀的表中,执行完毕的流程信息则保存在以 ACT_HI_ 为前缀的表中,也就是流程历史信息表。 假设有一个流程,流程图如下: 当这个流程执行完毕后,以 ACT_RU_ 为前缀的…...
DataX下载安装使用
文章目录 01.Clickhouse到HBase(Phoenix)数据导入 DataX介绍下载执行同步的组件配置数据同步查看官方读写配置样例创建Hbase和Phoenix表创建ClickHouse表写入ClickHouse测试数据编写ClickHouse2Hbase配置文件执行同步命令 拓展ClickHouse同步到MySQL配置文件 01.Clickhouse到HB…...
PCB多层板 : 磁通对消法有效控制EMC
在PCB的EMC设计考虑中,首先涉及的便是层的设置;单板的层数由电源、地的层数和信号层数组成;在产品的EMC设计中,除了元器件的选择和电路设计之外,良好的PCB设计也是一个非常重要的因素。 PCB的EMC设计的关键࿰…...
基于正点原子电机实验的pid调试助手代码解析(速度环控制)
这里写目录标题 下位机与PID调试助手传输的原理代码讲解(基于正点原子)解析数据接受和数据发送的底层函数数据接受数据帧格式环形数组以及怎么找到它的帧头位置crc校验 数据发送数据上传函数 通过前两节文章,我已经了解了基本的pid算法,现在在完成了电机…...
报表设计器Stimulsoft 2023.2提供深色主题和 Monoline 图标包
Stimulsoft Reports 是一款报告编写器,主要用于在桌面和Web上从头开始创建任何复杂的报告。可以在大多数平台上轻松实现部署,如ASP.NET, WinForms, .NET Core, JavaScript, WPF, Angular, Blazor, PHP, Java等,在你的应用程序中嵌入报告设计器…...
文本三剑客之——sed编辑器
sed编辑器 sed编辑器sed基础语法sed查询sed删除sed 替换sed 插入 sed编辑器 sed是文本处理工具,依赖于正则表达式,可以读取文本内容,工具指定条件对数据进行添加、删除、替换等操作,被广泛应用于shell脚本,以完成自动…...
华为OD机试真题 Java 实现【贪心的商人】【2023Q1 100分】
一、题目描述 商人经营一家店铺,有number种商品,由于仓库限制每件商品的最大持有数量是item[index],每种商品的价格在每天是item_price[item_index][day],通过对商品的买进和卖出获取利润,请给出商人在days天内能获取到的最大利润。 注:同一件商品可以反复买进和卖出;…...
《数据结构与算法C++版》实验二-链表实验
一、实验内容 实验目的 1、实现线性表的链式存储结构(链表)。 2、熟悉 C++程序的基本结构,掌握程序中的头文件、实现文件和主文件之间的 相互关系及各自的作用。 3、熟悉链表的基本操作方式,掌握链表相关操作的具体实现。 实验内容 对链式存储结构的线性表进行一些基本操作…...
【Docker】容器生命周期管理:从优雅停止到高效清理的实战技巧
1. 为什么需要关注容器生命周期管理? 第一次接触Docker时,很多人会把容器当成"轻量级虚拟机"来用。直到某天深夜,我的生产环境突然报警——磁盘空间爆满了。排查后发现,原来过去三个月创建的测试容器都没清理࿰…...
GEMMA-3像素工作站效果展示:复古界面下的惊艳图像理解案例
GEMMA-3像素工作站效果展示:复古界面下的惊艳图像理解案例 1. 引言:当AI遇见像素艺术 在数字艺术与人工智能的交叉点上,GEMMA-3像素工作站创造了一种独特的体验。这款工作站将Google最先进的多模态大模型Gemma-3封装在一个充满90年代情怀的…...
从数据集到GUI应用:手把手教你用YOLOv11训练自己的手势识别模型(保姆级教程)
从数据集到GUI应用:手把手教你用YOLOv11训练自己的手势识别模型(保姆级教程) 在计算机视觉领域,手势识别技术正逐渐从实验室走向实际应用。无论是智能家居控制、虚拟现实交互,还是无障碍通信系统,准确快速的…...
大模型核心技术概述:Token、Prompt、Tool与Agent的关系详解
你是不是经常听人聊AI时蹦出这些词:LLM、Token、Context、Prompt、Tool、MCP、Agent?听着好像都认识,但真要问“这到底是啥”,又有点懵。今天把这些词一个个拆开揉碎,讲清楚它们到底是啥、有啥用、又是怎么串起来的。 …...
别再死记硬背了!用矢量网络分析仪实测PA的P1dB和OIP3(附详细步骤与曲线解读)
矢量网络分析仪实战:PA的P1dB与OIP3测量全流程解析 在射频放大器设计与测试领域,P1dB和OIP3是两个无法绕开的性能指标。许多工程师虽然能背诵定义,但面对实验室里的矢量网络分析仪(VNA)时却无从下手。本文将彻底改变这…...
安路PH1A180 FPGA实战:用米联客FDMA IP搞定DDR视频缓存,附源码调试心得
安路PH1A180 FPGA实战:FDMA IP与DDR视频缓存深度优化指南 在视频处理系统中,FPGADDR架构已成为实时高清视频流处理的标准方案。安路PH1A180凭借其高性能特性,配合米联客FDMA IP核,能够构建稳定高效的视频缓存系统。但在实际工程落…...
AI智能体应用工程师:少数人掌握的高薪未来,你离入场还有多远
AI智能体应用工程师 — 国家战略人才项目|企业刚需资质—国务院发布关于实施“人工智能”行动。文中指出:到2027年,率先实现人工智能与6大重点领域广泛深度融合,新一代智能体终端、智能体等应用普及率超过70%。 各地省政府于2025年市级“A1产业”专项基金…...
如何用Java处理地震波?信号滤波算法
常用的地震波信号滤波算法包括傅里叶转换(fft)与频域滤波器、fir滤波器、iir滤波器和中值滤波器一起。. 通过将时域信号转换为频域,java可以通过apache实现特定频率组件的操作 commons math库中的fastfouriertransformer类实现;2.…...
DICOM RT Structure深度解析——从文件结构到靶区可视化
1. DICOM RT Structure文件基础认知 第一次接触DICOM RT Structure文件时,我完全被那些密密麻麻的标签和序列搞晕了。这就像拿到一份没有目录的医学百科全书,所有内容都堆在一起。但经过几个项目的实战,我发现只要抓住三个核心序列࿰…...
深入RISC-V调试模块:从硬件设计视角看DM、DTM与抽象命令的实现
RISC-V调试模块硬件架构深度解析:从状态机到抽象命令的工程实现 1. RISC-V调试系统的硬件架构全景 在RISC-V生态系统中,调试模块(Debug Module, DM)作为连接外部调试器与处理器核心的关键枢纽,其硬件设计直接决定了芯片的可调试性。与传统的…...
