MySQL 面试题合集(项目篇)

【金三银四】MySQL优化面试题(2021最新版) 【金三银四】Java中间件面试题(2021最新版) MySQL调优+索引+数据结构面试题(2021最新版) 【金三银四】Java微服务面试题(2021最新版) 【金三银四】Java并发编程面试题(2021最新版) 【金三银四】Java基础知识面试题(2021最新版) 【金三银四】Redis面试题(2021最新版) 【金三银四】Spring Boot面试题(2021最新版) 【金三银四】spring mvc面试题(2021最新版) 【金三银四】spring cloud面试题(202... 阅读详情

🎈每日定期分享 | 面试求职经验 | 个人成长

开篇寄语
面试不必死记硬背,带着GPT去面试简直降维打击!

 

为您推荐一款颠覆性的GPT面试助手软件:“会议面试精灵”。这款工具能够实时分析语音内容、智能识别面试问题并生成精准答案,让您轻松应对八股文题目,从容处理各类复杂面试问题。
毕竟八股文在工作中很少使用,仅作为面试的筛选工具,不值得投入过多的精力。

 

如何获取“会议面试精灵”?
- 直接访问下载链接:https://www.interviewpass.fun
- 在搜索引擎中输入关键词:“会议面试精灵”(记得加上双引号)进行搜索。


目录

1、有一个超级大表,如何优化分页查询?

2、线上修改表结构有哪些风险?

3、查询长时间不返回可能是什么原因?应该如何处理?

4、MySQL 主从延迟的原因有哪些?

5、如何保证数据不被误删?

6、MySQL 服务器 CPU 飙升应该如何处理?

7、MySQL 毫无规律的异常重启,可能产生的原因是什么?该如何解决?

8、如何实现一个高并发的系统?

1)前端优化

2)中间层负载分发

3)控制层(网关层)

4)服务层

5)数据库层​​​​​​​


1、有一个超级大表,如何优化分页查询?

超级大表的分页优化分有以下两种方式:

1、数据库层面优化:

利用子查询优化超多分页场景,比如:SELECT a.* FROM 表 1 a, (select id from 表 1 where 条件 LIMIT 100000,20 ) b where a.id=b.id ,先快速定位需要获取的 id 段,然后再关联查询。MySQL 并不是跳过 offset 行,而是取 offset+N 行,然后返回放弃前 offset 行,返回 N 行,那当 offset 特别大的时候,效率就非常的低下,要么控制返回的总页数,要么对超过特定阈值的页数进行 SQL 改写,利用子查询先快速定位需要获取的 id 段,然后再关联查询,就是对分页进行 SQL 改写的具体实现;

2、程序层面优化:

可以利用缓存把查询的结果缓存起来,这样再下一次查询的时候性能就非常高了。

2、线上修改表结构有哪些风险?

线上修改表结构有可能 MySQL 服务器阻塞,因为在执行 DML(select、update、delete、insert)操作时,会给表增加一个元数据锁,这个元数据锁是为了保证在查询期间表结构不会被修改,而执行修改表结构时,必须要等待元数据锁完成之后才能执行,这就可能造成数据库服务器的阻塞。

在 MySQL 5.6 开始提供了 online ddl 功能,允许一些 DDL(create table/view/index/syn/cluster)语句和 DML 语句并发,在 5.7 版本对 online ddl 又有了增强,这使得大部分 DDL 操作可以在线进行,详见:https://dev.mysql.com/doc/refman/5.7/en/innodb-create-index-overview.html,这使得在线上修改表结构的风险变的更大,如果在业务开发过程中必须在线修改表结构,可以参考以下方案:

  • 尽量在业务量小的时间段进行;

  • 查看官方文档,确认要做的表修改可以和 DML 并发,不会阻塞线上业务;

  • 推荐使用 percona 公司的 pt-online-schema-change 工具,该工具被官方的 online ddl 更为强大,它的基本原理是:通过 insert…select… 语句进行一次全量拷贝,通过触发器记录表结构变更过程中产生的增量,从而达到表结构变更的目的。比如,要对 A 表进行变更,它的主要流程为:

1)创建目的表结构的空表 A_new;

2)在A表上创建触发器,包括增、删、改触发器;

3)通过 insert…select…limit N 语句分片拷贝数据到目的表;

4)Copy完成后,将 A_new 表 rename 到 A 表。

3、查询长时间不返回可能是什么原因?应该如何处理?

查询速度慢的原因很多,常见如下几种:

1、查询字段没有索引或者没有触发索引查询,没有触发索引查询的情况如下: 不会使用索引的情况如下:

  • 以 % 开头的 like 查询不会使用 b-tree 索引;

  • 数据类型出现隐式转换时不会使用索引,比如,某列是 varchar 类型,却使用了columnname=1 的查询语句,这是不会使用索引,正确触发索引的查询语句为:columnname='1' ;

  • 不符合最左前缀原则;

  • 如果查询条件有 or 分割,or 前面的使用索引,or 后面的未使用索引,则不会使用索引,因为即使 or 之前的使用了索引,但是 or 之后的也需要全表查询,索引就忽略索引,直接全表查询;

  • 如果 MySQL 认为使用索引会比全表查询更慢

MySQL的常见问题 1、MySQL 中有哪几种锁? 1、表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 2、行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 3、页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。 2、MySQL 中有哪些不同的表格? 共有 5 种类型的表格: 1、MyISAM 2、Heap 3、Merge 4、INNODB 5、ISAM 3、MySQL 中 InnoDB 支持的四种事务隔离级 阅读详情

相关推荐

计算机网络面试题合集

计算机网络面试题合集

interviewpass的博客 1392

MySQL 面试题合集(基础篇)

共享表空间:指的是数据库的所有的表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在 data 目录下。独立表空间:每一个表都将会生成以独立的文件方式来进行存储。共享表空间和独立表空间最大的区别是如果把表放再共享表空间,即使表删除了空间也不会删除,所以表依然很大,而独立表空间如果删除表就会清除空间。覆盖索引是指,索引上的信息足够满足查询请求,不需要再回到主键上去取数据。脏读是一个事务在处理过程中读取了另外一个事务未提交的数据;

interviewpass的博客 2579

MySQL 面试题合集(日志篇)

crash-safe 是指发生宕机等意外情况下,服务器重启后数据依然不会丢失的情况。MySQL 为了操作的性能优化,会把数据更新先放入内存中,之后再统一更新到磁盘。当内存数据和磁盘数据内容不一致的时候,我们称这个内存页为脏页;内存数据写到磁盘后,内存的数据和磁盘上的内容就一致了,我们称为“干净页”。

interviewpass的博客 1052

2021年MySQL面试题55道

文章目录前言面试题系列文章传送门MySQL面试题内容1. 简述在MySQL数据库中引擎MyISAM和InnoDB的区别?2. MySQL中有哪几种锁?3. 什么是通用SQL函数?4. MySQL中有哪些不同的表格?5. CHAR和VARCHAR的区别?6. MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?7. myisamchk是用来做什么的?8. 主键和候选键有什么区别?9. 如果一个表有一列定义为TIMESTAMP,将发生什么?10. 列设置为AUTO INCREMENT时,如

码农阿斌的博客 2万+

mysql高频面试题合集

1.请你谈谈 MySQL 事务隔离级别,MySQL 的默认隔离级别是什么?p25 为了达到事务的四大特性,数据库定义了 4 种不同的事务隔离级别: READ-UNCOMMITTED(读取未提交):最低的隔离级别,允许脏读,也就是可能读取 到其他会话中未提交事务修改的数据,可能会导致脏读、幻读或不可重复读。  READ-COMMITTED(读取已提交): 只能读取到已经提交的数据。Oracle 等多数数 据库默认都是该级别 (不重复读),可以阻止脏读,但是幻读或不可重复读仍有可能发 生。  REPEAT

贝la的博客 5037

MySQL 面试题合集(锁篇)

MySQL 面试题合集(锁篇)

interviewpass的博客 1218

MySQL 面试题合集(性能优化篇)

MySQL 面试题合集(性能优化篇)

interviewpass的博客 2120

MySQL 面试题合集(事务篇)

MySQL 面试题合集(事务篇)

interviewpass的博客 1000

SMR实战指南:从GWAS数据到eQTL分析的完整流程

本文提供了基于汇总数据的孟德尔随机化(SMR)实战指南,详细解析了如何从GWAS汇总数据出发,整合eQTL数据,完成从数据准备、BESD格式转换到最终SMR与HEIDI分析的完整流程。文章重点阐述了核心操作步骤、常见避坑技巧与结果解读,旨在帮助遗传学研究者高效掌握这一分析基因表达与复杂性状潜在因果关系的强大工具。

weixin_29246195的博客 1063

complier lab2

只需支持定义 main 函数即可不带参数 int main(){...}带参数 int main(int argc, int argv){...}

qq_43581843的博客 904

基于微信小程序的答题系统

学习视频:《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!5812)]《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_83330193的博客 498

安防相机宽动态(WDR)技术解析:从原理到实战应用

本文深入解析安防相机宽动态(WDR)技术原理,对比多次曝光与DOL-WDR等实现方式,并区分硬件WDR与数字WDR(DWDR)的本质差异。文章重点阐述了WDR在逆光出入口、夜间道路监控等五大典型场景的实战应用与调参技巧,旨在帮助用户根据实际需求正确选择与配置,确保监控系统在复杂光线下清晰成像。

weixin_29191081的博客 427

软件设计师---计算机系统

软件设计师---计算机系统

我从不打没有准备的仗! 3万+

信奥赛C++提高组csp-s之数论基础专题课:从同余到分数模运算1(知识地图:同余、裴蜀定理、扩展欧几里得、乘法逆元、分数模运算)

信奥赛C++提高组csp-s之数论基础专题课:从同余到分数模运算1(知识地图:同余、裴蜀定理、扩展欧几里得、乘法逆元、分数模运算)

王老师青少年编程 790

Android功耗系列专题分析之四:待机概率性功耗高的失效分析

本文分析了Android设备待机功耗异常高的问题。通过日志发现系统休眠失败,原因是PowerManagerService.Display唤醒锁未被释放。进一步排查发现,指纹解锁功能在灭屏时未正确释放屏幕锁定,导致DisplayReady状态异常。解决方案是将指纹功能的背光控制与DisplayReady状态控制分离,使用两个变量独立管理。经验表明,快速定位问题比解决问题更重要,修改原生流程时需谨慎评估风险。

451

①电子产品拆解分析-暖手宝

电子产品拆解分析-暖手宝 ①按键三档调温暖手; ②长按进入氛围呼吸灯; ③安卓接口充电以及支持USB输出;

a6662580的博客 5292

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: MySQL 面试题合集(性能优化篇)
下一篇: 计算机网络面试题合集(体系结构篇)
interviewpass
博客等级 码龄3年 521粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值