《为研发同学定制的MySQL面试指南》-- 连载中

文章公众号首发,持续更新中

Hi大家好,我是来自博客园的赐我白日梦!

为大家带来MySQL面试专题!全文110篇!以问答的方式,由浅入深的帮你应对各类MySQL面试题的狂轰滥炸!当然也不乏会分享一些高阶读写分离数据库中间件原理及落地的技术实现,为你揭开数据库中间件神秘的面纱!

面试官都关注了!你还在犹豫什么呢?

可通过公众号联系到我,拉你进讨论群

  1. 大家常说的基数是什么?(已发布)
  2. 讲讲什么是慢查!如何监控?如何排查?(已发布)
  3. 对NotNull字段插入Null值有啥现象?(已发布)
  4. 能谈谈 date、datetime、time、timestamp、year的区别吗?(已发布)
  5. 简述一下数据库的三大范式吧!
  6. 了解数据库的查询缓存和BufferPool吗?谈谈看!(已发布)
  7. 你知道数据库缓冲池中的LRU-List吗?(已发布)
  8. 谈谈数据库缓冲池中的Free-List?(已发布)
  9. 谈谈数据库缓冲池中的Flush-List?(已发布)
  10. 了解脏页刷回磁盘的时机吗?(已发布)
  11. 用十一张图讲清楚,当你CRUD时BufferPool中发生了什么!以及BufferPool的优化!(已发布)
  12. 听说过表空间没?什么是表空间?什么是数据表?(已发布)
  13. 谈谈MySQL的:数据区、数据段、数据页、数据页究竟长什么样?了解数据页分裂吗?谈谈看!(已发布)
  14. 谈谈MySQL的行记录是什么?长啥样?(已发布)
  15. 了解MySQL的行溢出机制吗?(已发布)
  16. 说说fsync这个系统调用吧! (已发布)
  17. 简述undo log、truncate、以及undo log如何帮你回滚事物! (已发布)
  18. 我劝!这位年轻人不讲MVCC,耗子尾汁! (已发布)
  19. 传说中的MySQL的redo log到底是什么(已发布)
    22.谈谈MySQL的LSN、Checkpoint机制,以及MySQL的崩溃恢复机制(已发布)
  20. MySQL的binlog有啥用?谁写的?在哪里?怎么配置 (已发布)
  21. 了解bin-log的写入机制吗?
  22. binlog有哪些格式?有啥区别?优缺点?线上用那种格式?
  23. 如何将DB中的数据恢复到指定日期的指定时刻?
  24. 使用过mysqldump吗?
  25. 了解两阶段提交吗?
  26. 两阶段提交和分布式事务
  27. 为什么说binlog没有数据恢复的能力?
  28. MySQL运行的过程中大批量的写undo、redo,不影响性能吗?
  29. 能简述一下一条Update SQL的执行流程是什么吗?
  30. 串讲MySQL各种Crash如何保证数据安全
  31. char类型,到底是定长还是不定长呢?
  32. 说说MySQL是如何存储varchar类型的吧!
  33. 说说MySQL有几种联表查询?分别是什么?
  34. join查询,选大表当驱动表还是选小表?
  35. 说说这条SQL的查询结果是什么吧!
  36. 谈谈 checkpoint技术!
  37. 什么是MySQL-InsertBuffer
  38. 什么是MySQL-changebuffer
  39. 了解double write吗?
  40. MySQL如何解决的写失效问题?
  41. MySQL5.7使用的InnoDB引擎版本是多少?
  42. MySQL启动失败了,怎么排错?
  43. 从哪里看MySQL曾经执行过的SQL?
  44. 谈谈MySQL提供了哪些登陆方式吧!
  45. 说说平衡二叉树、二叉搜索树的特性吧!
  46. 心里有点B树吗?
  47. 心里有点B+树吗?
  48. 别怂,谈谈红黑树!
  49. 为什么MySQL的索引组织形式选择了B+树?
  50. 讲一下什么是聚簇索引、B+Tree是怎么长高的!
  51. 能谈谈二级索引吗?
  52. 说说什么是覆盖索引吧!
  53. 谈谈你对联合索引的理解!
  54. 看过SQL执行计划吗?说说看!
  55. 使用过mysqldump吗?说说看!
  56. 什么是有损DDL?什么是无损DDL?
  57. 如何无损给线上的table添加一列?
  58. 说说什么是倒排索引?
  59. InnoDB支持全文检索吗?
  60. 为啥你们的全文检索系统选ES而不用MySQL实现呢?
  61. 谈谈什么是MySQL的意向锁吧!
  62. 谈谈MySQL的ReadView机制!
  63. 谈谈MVCC是怎么实现的吧!
  64. 在RR隔离界别下,select * from table;会加锁吗?
  65. 如何给select 语句加锁?
  66. 什么是Record Lock?
  67. 说说四大隔离级别吧!
  68. 举例说说什么是脏读、脏写、幻读、不可重复读
  69. InnoDB是如何解决幻读的(Gap Lock)?
  70. 什么是Next-Key Lock?
  71. 来看看这条SQL加了什么锁?锁的范围是什么?
  72. 了解MySQL的两阶段锁协议吗?
  73. 了解表锁吗?谈谈看!
  74. 谈谈MySQL的死锁、死锁检测吧!
  75. 说说长事物可能带来哪些风险吧!
  76. MySQL存在丢失更新问题吗?
  77. 重做表,表中数据删除后为啥表大小不变?
  78. 直接删除一个线上的大表会有什么影响?
  79. 了解如何做线上大表限速删除吗?
  80. 能结合ORM框架聊聊MySQL的事务吗?
  81. 你们的业务有做分表吗?如何分表分的?
  82. 谈谈MySQL分库吧!
  83. 了解MySQL的分区表吗?说说看!
  84. 分区能加快查询的性能吗?
  85. 能对比一下MySQL的分区表和分库分表两种玩法吗?
  86. 了解XA事物吗?
  87. 什么是分布式事务?为什么会有分布式事务?
  88. 了解MySQL数据库的分布式事务吗?
  89. 谈谈MySQL的用户、及权限吧!
  90. 知道什么是GTID吗?
  91. 如何通过filename + position搭建一套MySQL集群?
  92. 如何通过GTID搭建一套MySQL的集群?
  93. 如何基于Docker搭建一套MySQL集群?
  94. 能 串讲主从MySQL集群的写各种日志、崩溃恢复、两阶段提交吗?
  95. 假设主库跪了,你是如何做主从切换的?
  96. 你有哪些方法判断主从MySQL的数据同步是否中断了?
  97. 说说主从复制到底是怎么玩的!
  98. 了解主从复制的幂等机制吗?
  99. 如何往现有的集群中添加一个新的节点进去?
  100. 谈谈你了解的MySQL主从复制的模式有哪些以及各自的优缺点!
  101. 剖析数据库中间件到底是怎么的存在!
  102. 剖析数据库中间件的登陆、鉴权是如何实现的!
  103. 剖析数据库中间件的权限管理是如何实现的!
  104. 深度剖析数据库中间件的连接池管理!
  105. 深度剖析数据库中间件的是如何实现事物管理的!
  106. 深度剖析数据库中间件的是如何实现读写分离的!

关注公众号,可免费领取 18张 高清精美脑图,助力你的春招

回复:面试 可领取!

回复:面试 可领取!

JAVAIO

JAVA基础

JAVA集合框架

Socket

并发多线程

操作系统

分布式

攻击技术

缓存

集群

计算机网络

设计模式

数据库

系统设计

消息队列

计算机组成原理

HTTP

JVM

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信息,如下图所示: “兵马未动粮草先行”,看完了相关的配置之后,我们先来创建一张测试表和一些测试数据。 -- 如果存在 person 表先删除 DROP TABLE IF EXISTS person; -- 创建 person 表,其中
> [合辑地址:MySQL全面瓦解](https://www.cnblogs.com/wzh2010/category/1859594.html "合辑地址:MySQL全面瓦解") # 1 为什么需要数据库备份 - 灾难恢复:当发生数据灾难的时候,需要对损坏的数据进行恢复和
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时段大量连接同时执行操作,会导致数据库在处理上遇到性能瓶颈。为了解决这个问题,行业先驱门充分发扬了分而治之的思想,对大库表进行分割,
然后实施更好的控制和管理,同时使用多台机器的CPU、内存、存储,提供更好的性能。而分治有两种实现方式:垂直拆
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括了 垂直拆分(Scale Up 纵向扩展)和 水平拆分(Scale Out 横向扩展) ,同时简要整理了水平分区的几种策略,现在来回顾一下。 2 水平分区的5种策略 2.1 Hash(哈希) 这种策略是通过对表的一个或多个列的Ha
navicat查看某个表的所有字段的详细信息 navicat设计表只能一次查看一个字段的备注信息,那怎么才能做到一次性查询表的信息呢?SELECT COLUMN_NAME,COLUMN_COMMENT,COLUMN_TYPE,COLUMN_KEY FROM information_schema.CO
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52768613前言:数据库每天的数据不断增多,自动删除机制总体风险太大,想保留更多历史性的数据供查询,于是从小的hbase换到大的hbase上,势在必行。今天记录下这次数据仓库迁移。看下Agenda:彻底卸载MySQL安装MySQL_linux服务器进行数据迁移
文章浏览阅读488次。恢复步骤概要备份frm、ibd文件如果mysql版本发生变化,安装回原本的mysql版本创建和原本库名一致新库,字符集都要保持一样通过frm获取到原先的表结构,通过的得到的表结构创建一个和原先结构一样的空表。使用“ALTER TABLE DISCARD TABLESPACE;”命令卸载掉表空间将原先的ibd拷贝到mysql的仓库下添加用户权限 “chown . .ibd”,如果是操作和mysql的使用权限一致可以跳过通过“ALTER TABLE IMPORT TABLESPACE;”命令恢_alter table discard tablespace
文章浏览阅读225次。当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNEDVARCHAR的长度只分配_开发项目 浏览记录表 过大怎么办
文章浏览阅读1.5k次。Mysql创建、删除用户MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束):1.新建用户登录MYSQL:@>mysql -u root -p@>密码创建用户:mysql> insert into mysql.user(Host,User,Password) values("localhost_删除mysql用户组
MySQL是一种开源的关系型数据库管理系统,被广泛应用于各类应用程序的开发中。对于MySQL中的字段,我们需要进行数据类型以及默认值的设置,这对于数据的存储和使用至关重要。其中,有一个非常重要的概念就是MySQL字段默认字符串。 CREATE TABLE `my_...
MySQL是一个流行的开源关系型数据库管理系统,广泛应用于Web应用程序开发、数据存储和管理。在使用MySQL时,正确设置字符集非常重要,以确保数据的正确性和可靠性。 在MySQL中,字符集表示为一系列字符和字母的集合。MySQL支持多种字符集,包括ASCII、UTF...
MySQL存储函数 n以内偶数 MySQL存储函数能够帮助用户简化操作,提高效率,常常被用于计算和处理数据。下面我们就来了解一下如何使用MySQL存储函数计算n以内的偶数。 定义存储函数 首先,我们需要定义一个MySQL存储函数,以计算n以内的偶数。下...
MySQL是一个流行的关系型数据库管理系统,基于客户机-服务器模式,可在各种操作系统上运行。 MySQL支持多种字符集,不同的字符集包括不同的字符,如字母、数字、符号等,并提供不同的排序规则,以满足不同语言环境的需求。 //查看MySQL支持的字符集与校对规...
在MySQL数据库中,我们有时需要对特定的字符串进行截取并进行分组统计。这种操作对于数据分析和报表制作有着重要的应用。下面我们将讲解一些基本的字符串截取和分组统计的方法。 首先,我们可以使用substring函数对字段中的字符串进行截取。假设我们有一张表stude...
MySQL提供了多种字符串的查找函数。下面我们就一一介绍。 1. LIKE函数 SELECT * FROM mytable WHERE mycolumn LIKE 'apple%'; 其中"apple%"表示以apple开头的字符串,%表示任意多个字符...
MySQL 是一种关系型数据库管理系统,广泛应用于各种不同规模和类型的应用程序中。在 MySQL 中,处理字符串数据是很常见的任务。有时候,我们需要在字符串的开头添加一定数量的 0 ,以达到一定的位数。比如,我们可能需要将一个数字转换为 4 位或 5 位的字符串,不足的...
MySQL是一种流行的关系型数据库管理系统,支持多种数据类型。以下是MySQL所支持的数据类型: 1. 数值型数据类型: - TINYINT 保存-128到127范围内的整数 - SMALLINT 保存-32768到32767范围内的整数 - MEDIU...
MySQL中存储Emoji表情字段类型 在现代互联网生态中,表情符号已经成为人们展示情感和思想的重要方式之一,因此将表情符号存储到数据库中是一个经常出现的问题。MySQL作为最流行的开源关系型数据库管理系统之一,也需要能够存储和管理这些表情符号的字段类型。 UT...
MySQL是一种关系型数据库管理系统。在MySQL数据库中,有多种不同的数据类型。而其中,最常见的数据类型之一就是字符串类型。在MySQL中,字符串类型的数据通常会被存储为TEXT或VARCHAR类型。 首先,让我们来看一下VARCHAR类型。VARCHAR是My...
MySQL字符串取整知识详解 MySQL是一种开源的关系型数据库管理系统,广泛应用于各个领域。在使用MySQL过程当中,我们经常需要对数据进行取整操作。本文将介绍如何使用MySQL字符串取整来处理数据取整问题。 什么是MySQL字符串取整? MySQL...