2021年最新MySQL 高级面试题及答案

前言

最近针对互联网公司面试问到的知识点,总结出了Java程序员面试涉及到的绝大部分面试题及答案分享给大家,希望能帮助到你面试前的复习且找到一个好的工作,也节省你在网上搜索资料的时间来学习。

内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitMQ、Kafka、Linux等技术栈。

完整版Java面试题地址:JAVA后端面试题整合

1、MySQL 中有哪几种锁?

(1)表级锁:

开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

(2)行级锁:

开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。

(3)页面锁:

开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。

2、MySQL 中有哪些不同的表格?共有 5 种类型的表格:

(1)MyISAM

(2)Heap

(3)Merge

(4)INNODB

(5)ISAM

3、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别MyISAM:

不支持事务,但是每次查询都是原子的;支持表级锁,即每次操作是对整个表加锁;存储表的总行数;一个 MYISAM 表有三个文件:索引文件、表结构文件、数据文件;采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本一致,但是辅索引不用保证唯一性。

InnoDb:

支持 ACID 的事务,支持事务的四种隔离级别;支持行级锁及外键约束:因此可以支持写并发;不存储总行数:一个 InnoDb 引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受操作系统文件大小限制,一般为 2G),受操作系统文件大小的限制;主键索引采用聚集索引(索引的数据域存储数据文件本身),辅索引的数据域存储主键的值;因此从辅索引查找数据,需要先通过辅索引找到主键值,再访问辅索引;最好使用自增主键,防止插入数据时,为维持 B+树结构,文件的大调整。

4、MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

SQL 标准定义的四个隔离级别为:

(1)read uncommited :读到未提交数据

(2)read committed:脏读,不可重复读

(3)repeatable read:可重读

(4)serializable :串行事物

5、CHAR 和 VARCHAR 的区别?

(1)CHAR 和 VARCHAR 类型在存储和检索方面有所不同

(2)CHAR 列长度固定为创建表时声明的长度,长度值范围是 1 到 255 当 CHAR值被存储时,它们被用
空格填充到特定长度,检索 CHAR 值时需删除尾随空格。

6、主键和候选键有什么区别?

表格的每一行都由主键唯一标识,一个表只有一个主键主键也是候选键。按照惯例,候选键可以被指定为主键,并且可以用于任何外键引用。

7、myisamchk 是用来做什么的?

它用来压缩 MyISAM 表,这减少了磁盘或内存使用。MyISAM Static 和 MyISAM Dynamic 有什么区别?
在 MyISAM Static 上的所有字段有固定宽度。动态 MyISAM 表将具有像 TEXT,BLOB 等字段,以适应不同长度的数据类型。MyISAM Static 在受损情况下更容易恢复。

8、如果一个表有一列定义为 TIMESTAMP,将发生什么?

每当行被更改时,时间戳字段将获取当前时间戳。列设置为 AUTO INCREMENT 时,如果在表中达到最大值,会发生什么情况?它会停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。怎样才能找出最后一次插入时分配了哪个自动增量?LAST_INSERT_ID 将返回由 Auto_increment 分配的最后一个值,并且不需要指定表名称。

9、你怎么看到为表格定义的所有索引?

索引是通过以下方式为表格定义的:SHOW INDEX FROM ;

10、LIKE 声明中的%和_是什么意思?

%对应于 0 个或更多字符,_只是 LIKE 语句中的一个字符。如何在 Unix 和 MySQL 时间戳之间进行转换?UNIX_TIMESTAMP 是从 MySQL 时间戳转换为 Unix 时间戳的命令FROM_UNIXTIME 是从 Unix 时间戳转换为 MySQL 时间戳的命令

11、列对比运算符是

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面试高级开发的期间整理的面试题目,记录我面试遇到过的数据库题目以及答案,比如说mvvc还有数据库调优,索引。 目录如下 数据库 数据库事务隔离级别; 事务的并发导致的问题; 数据库事务设置不同的隔离级别导致的不同并发问题 当前读和快照读的意义; mvcc:多版本控制: 指的是一种提高并发的技术,其解决问题是什么; MVCC实现过程; mvcc三大组件; RC、RR级别下的InnoDB快照读有什么不同:17 mysql面试题01.vep 描述一下mysql的乐观锁和悲观锁,以及mysql锁的种类; mysql如何做分库分表的; mysql描述一下mysql主从复制的机制的原理;mysql主从复制主要有几种模式 在mysql开启Binlog(为了其他非事务引擎复制所以引入binlog,比如说主从)后,如何保证binlog和InnoDB redo日志的一致性呢; binlog和redo log和区别; mysql涉及到的log有哪些; 阿里要求尽量少用join,为什么; 索引 索引分类 索引的数据结构; b树和b+树的区别 索引失效的情况: 数据库优化 查询计划的结果中看哪些关键数据; mysql 如何调优; 索引是建的越多越好吗; 在表查询中,一律不要使用 * 作为查询的字段列表,原因是什么; 描述一下InnoDB和MyISAM的区别; 当前读和快照读的意义; 13 mvcc:多版本控制: 指的是一种提高并发的技术,其解决问题是什么; 14 MVCC实现过程; 14 mvcc三大组件; 15 RC、RR级别下的InnoDB快照读有什么不同:17 mysql面试题01.vep 17 描述一下mysql的乐观锁和悲观锁,以及mysql锁的种类; 17 mysql如何做分库分表的; 18 mysql描述一下mysql主从复制的机制的原理;mysql主从复制主要有几种模式 19 在mysql开启Binlog(为了其他非事务引擎复制所以引入binlog,比如说主从)后,如何保证binlog和InnoDB redo日志的一致性呢; 20 binlog和redo log和区别; 22 mysql涉及到的log有哪些; 23 阿里要求尽量少用join,为什么; 23 索引 24 索引分类 24 索引的数据结构; 24 b树和b+树的区别 26 索引失效的情况: 26 数据库优化 27 查询计划的结果中看哪些关键数据; 27 mysql 如何调优; 27 索引是建的越多越好吗; 29 在表查询中,一律不要使用 * 作为查询的字段列表,原因是什么; 29 描述一下InnoDB和MyISAM的区别; 29
MySQL高级面试题答案: 1. 请解释MySQL中的索引是什么,它的作用是什么? 索引是一种数据结构,用于快速查找数据表中的特定行。它能够提高查询的效率,并且可以加速表的数据插入、修改和删除操作。 2. 请解释MySQL中的聚簇索引和非聚簇索引有什么区别? 聚簇索引是根据表的主键来排序数据的索引,它直接指向数据行,并且表中的数据按照聚簇索引的顺序物理存储。非聚簇索引则不改变表中数据的物理顺序,而是指向聚簇索引或数据行的指针。 3. 请介绍MySQL中常见的存储引擎,并解释它们的特点。 常见的MySQL存储引擎包括InnoDB、MyISAM、MEMORY等。InnoDB支持事务、行级锁定、外键等特性,适用于事务处理;MyISAM不支持事务,但对于读密集型应用具有较高的性能;MEMORY是将表存储在内存中,适用于对性能要求较高的临时表和缓存数据。 4. 请解释MySQL中的事务是什么,以及事务的基本特性是什么? 事务是一组操作被当作一个单一的工作单元执行的机制,它要么全部成功执行,要么全部回滚。事务具有ACID特性:原子性(事务中的操作要么全部执行,要么全部回滚)、一致性(事务在执行前后保持数据库的一致性状态)、隔离性(事务之间相互隔离,互不干扰)、持久性(事务一旦提交,对数据的改变就是永久性的)。 5. 请解释MySQL中的死锁是什么,如何避免死锁? 死锁是指两个或多个事务互相等待对方释放所占有的资源,从而导致所有事务都无法继续执行的情况。为避免死锁,可以使用以下方法:1)尽量让事务快速完成,减少持有锁的时间;2)保证事务的加锁顺序一致,避免交叉加锁导致死锁;3)使用合理的索引来优化查询,减少锁的竞争。 以上是对MySQL高级面试题的简要回答,实际面试时需要根据具体问题进行深入探讨。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值