首页 > 数据库 >2022-09-25-近60道MySQL经典面试题

2022-09-25-近60道MySQL经典面试题

时间:2022-09-25 21:56:04浏览次数:91  
标签:主库 25 面试题 mysql 读写 09 索引 MySQL 从库

近60道MySQL经典面试题

mysql面试常见问题学习整理

2.3.17.18.19.20.44未看。

1.B树和B+树之间的区别是?为什么mysql使用B+树?
一个节点有多个元素;B+树也是排序了的;B+树非叶子节点上的元素都冗余了一份在叶子节点上,B+树叶子节点之间有指针联系起来。(虽然是单向的)
image

image
2.
3.
4.2层B+树可以存2万行数据,3层B+树可以存2千万行记录数据。innoDB一页大小是16KB。
image
5.InnoDB是如何支持范围查找能走索引的?
范围查找,其实也是先找到边界等值,再取后边的值返回。
image
6.为什么要遵守最左前缀原则才能利用到索引?
主键索引对应的B+树呢是按照主键去对于这8条数据去排序,最终生成的B+树。现在(b,c,d)三个非主键字段构成的联合索引对应的B+树也一样,把8条数据按照b,c,d三个字段进行排序,就可以了。先比较第一个字段,b字段,相同再按照第二个字段进行比较,依次往后推。拿主键去主键索引查找完整的一条数据记录的过程叫做回表。最左前缀原则和where后边的条件的顺序么有关系。只要包含第一个字段就会走索引。
image
image
7.范围查找导致索引失效原理分析?
即使符合最左前缀原则,并不一定会走索引,当回表次数过多,效率低于全表扫描,则不会利用走索引的方式,而是采用全表扫描的方式进行查询。
image
8.索引覆盖的底层原理?
image
9.索引扫描的底层原理?
image
10.为什么order by会导致索引失效?
无非就是造成回表次数过多,浪费效率。
image
11.对字段进行操作导致索引失效原理?
一旦发生了sql隐士数据类型强转转换,需要注意,则破坏了索引结构,无法走索引保证查询OK。select 'a' = 0; true select 'a' = 1; false select '123' = 123; true select 'b' = 1; false 字符串中的数字会进行强转成数字,非数字字符串都是强转成0,再去执行sql。
12.ACID靠什么来保证的?
image
13.explain语句结果中各个字段分别表示什么?
image
14.InnoDB是如何实现事务的?
image

17.18.19.20.

21.mysql慢查询该如何优化?
image
22.mysql两种索引结构(hash索引和B+树索引结构)的优劣势对比?

23.mysql锁的类型有哪些?
image
image
image
24.MYSQL锁有哪些,该如何理解?
image
25.mysql执行计划怎么看?
image
26.mysql主从同步原理?
image
27.InnoDB是如何实现事务的?
image
28.mysql什么情况下设置了索引但无法使用?
image
30.存储拆分后如何解决唯一主键问题?
image
31.海量数据下如何快速查找一条记录?
image
32.简单说说MyISAM和InnoDB引擎的区别?
读写分离的时候,第一个适合读;第二个适合写。
image
33.简述mysql中索引类型及对数据库的性能的影响?
image
34.mysql的锁有哪些?
image
35.B树和B+树的区别?为什么mysql使用B+树?
image
epoll和poll的区别?
image
二叉搜索树和平衡二叉树有什么关系?
image
强平衡二叉树和弱平衡二叉树有什么区别?
image
36.事务的基本特性和隔离级别?
image
image

37.如何实现分库分表?
image
38.什么是MVCC机制?
image
39.什么是脏读,幻读;不可重复读;怎么解决?
image
image
40.索引的基本原理?
image
41.索引设计原则?
image
42.索引覆盖是什么?
image
43.怎么处理系统的慢查询问题?
image
44.如何进行分库分表?

45.最左前缀原则是什么?
image
46.Innodb是如何实现事务的?
image
47.mysql有哪些存储引擎?
image
48.MyISAM和InnoDB的区别是什么?
image
49.数据库表设计时,字段是如何进行选择的?
image
50.MySql中varchar(m)最多能存储多少数据?
image
51.事务并发可能存在或引入什么问题?
image
52.简单说下mysql的各种索引?
image
image
image
53.什么是三星索引?
image
54.InnoDB一棵B+树可以存放多少行数据?
image
55.如何提高insert的性能?
image
56.什么是全局锁?共享锁?排它锁?
image
57.mysql如何实现读写分离?(同视频号44)
什么是读写分离呢?就是将MySQL的数据拷贝成多份,写到其他的MySQL服务器上面,原来MySQL数据库呢,负责写,我们把它称之为主库,其他的MySQL数据库只负责读,称为从库,这就是MySQL的读写分离。具体怎么实现?从一台MySQL服务器数据库开始,开始构建多台,实现读写分离的主从架构。面试当中问的最多的是读写分离的原理,MySQL的读写分离的原理的核心是依赖于一个日志,这个日志呢,叫做binlog,binlog是个文件,是个二进制文件,如果说你对mysql执行任何的数据写入操作,比如insert或者是update的操作的话,它都会去写到这个文件,也就是说如果你执行的是修改的话,它会去写,但是查询不会。当你搭建了读写分离的服务器集群之后,那么在主库里面,他就会启动一个异步线程,这个异步线程会把这个binlog复制到从库上边来, 然后,从库收到这一个数据文件之后,它会去写一个叫做relay log的日志,这个日志叫中继日志,最后呢,从库它会启动一个叫做sql的线程,这个线程呢,就是去执行这个日志里边的insert和update就可以了。这样的话,从库里边的数据就已经同步了,这样就实现了MySQL的读写分离。说一下读写分离的优缺点,它的优点很多,比如,你有了主从架构的话,你不用担心一台mysql宕机,比如主库宕机了,那么这个时候你可以把从库改成主库,继续运行,与此同时的话,如果针对的是读业务,其实主库宕机了,对你的业务是没有任何影响的,另外你使用的是主从架构,你的项目性能会更高,因为你的数据的读和写,你分别在两台不同的数据库上面,所以项目的性能会更高,那么呢,这个就是mysql读写分离的优点,与此呢,还有缺点,缺点就是,mysql读写分离它的一个机制是异步的,就是在非常极端的情况下面,你的mysql主库宕机了,binlog它还没来得及进行复制,他就会导致数据的丢失,所以呢,它会最终造成从库里边数据的不一致(和主库),不过,出现这样的情况概率很低, 基本上呢是可以容忍的。
image
58.mysql如何实现分库分表?
按hash;按时间。
image
59.谈一下mysql中的死锁及如何解决死锁问题?
image

参考网络视频资料学习整理:
面试必刷:60道MySql经典面试必考题
https://www.bilibili.com/video/BV1WU4y1d7hD?p=2

标签:主库,25,面试题,mysql,读写,09,索引,MySQL,从库
From: https://www.cnblogs.com/YiMingXiaoBuYiMengXiaoNai/p/MySQL-faceTestQuestionsof60.html

相关文章

  • 【闲话】2022.09.25
    考试++虽然我个人习惯是++i。hereRSY大佬大家快去关注\(\texttt{_RSY_}\)大佬!顺便记得不要像我一样写题解的时候老爱加空格。失踪人口回归L回来了(说起来L......
  • 2022-2023-1 20221409 《计算机基础与程序设计》第四周学习总结
    2022-2023-120221409《计算机基础与程序设计》第四周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在......
  • [Oracle] LeetCode 253 Meeting Rooms II 优先队列
    Givenanarrayofmeetingtimeintervalsintervalswhereintervals[i]=[starti,endi],returntheminimumnumberofconferenceroomsrequired.Solution我们用......
  • pta甲级1005-1009+cf每日水题
    1005:简单模拟,数组打表1#include<bits/stdc++.h>2usingnamespacestd;3#defineintlonglong4#defineIOSios_base::sync_with_stdio(0);cin.tie(0);cout.......
  • 9.25
    本周学习总结1.计算机基础2.typora软件和markdown语法3.python解释器和环境4.pycharm5.PEP8规范计算机基础1.计算机的本质​ 计算机也称之为"电脑">>>:通电的大脑......
  • LeetCode2096 从二叉树一个节点到另一个节点每一步的方向
    LeetCode2096从二叉树一个节点到另一个节点每一步的方向最近公共祖先的变形题.#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val......
  • 《Unix/Linux系统编程》第七、八章学习笔记 20201209戴骏
    一、知识点归纳第七章文件操作1.文件操作级别文件操作分为五个级别,按照从低到高的顺序排列如下.(1)硬件级别:硬件级别的文件操作包括:fdisk:将硬盘、U盘或SDC盘分区。......
  • 9月25日迷惑
    今天想学线段树合并,所以就去复习一遍可持久化权值线段树。看了一会,不知道从哪里心血来潮,打算用动态开点写线段树2,所以就写了……因为没写过动态开点,所以在sbh的指导下写......
  • 小总结0925
    初识python1.python学习阶段及发展方向 python基础阶段(数据类型,函数,模块等基础知识) 网络并发编程 MySQL数据库 前端开发 Djiango框架 drf、项目开发 1.web开发......
  • 20220925 - CSP-S 模拟赛 #2
    20220925-CSP-S模拟赛#2时间记录\(8:00-8:20\)浏览题面\(8:20-8:45\)T1想到了分块计算,但是在手推样例的过程中,发现样例的数据并不能真正构成一局“扫雷”......