文章 2021-12-27 来自:开发者社区

面试必问 | 聊聊MySQL三大核心日志的实现原理?

大家好,我是冰河~~MySQL几乎成为互联网行业使用的最多的开源关系型数据库,正因如此,MySQL也成为各大互联网公司面试中必问的数据库,尤其是MySQL中的事务实现机制和三大核心日志的实现原理。有关MySQL的事务实现机制小伙伴们可以参见冰河出版的《深入理解分布式事务:原理与实战》一书。今天,我们就重点聊聊MySQL三大核心日志的实现原理。文章已收录到:https://github.com/s....

面试必问 | 聊聊MySQL三大核心日志的实现原理?
文章 2021-12-23 来自:开发者社区

阿里面试官:设计个MySQL的Hash索引吧?

除了B-Tree 索引,MySQL还提供了如下索引:Hash索引只有Memory引擎支持,场景简单R-Tree索引MyISAM的一个特殊索引类型,主要用于地理空间数据类型Full-textMyISAM的一个特殊索引,主要用于全文索引,从MySQL 5.6开始InnoDB支持全文索引索引 / 存储引擎MyISAMInnoDBMemoryB-Tree索引支持支持支持HASH索引不支持不支持支持R-T....

阿里面试官:设计个MySQL的Hash索引吧?
文章 2021-12-23 来自:开发者社区

阿里面试官:MySQL的InnoDB引擎是如何解决幻读问题的?(下)

为何会数据不一致?这是我们假设“select * from t where d=5 for update这条语句只给d=5这一行,也就是id=5的这一行加锁”导致的。所以我们认为,上面的设定不合理,要改。那怎么改?把扫描过程中碰到的行,也都加上写锁,再来看看执行效果。假设扫描到的行都被加上了行锁由于session A把所有行都加了写锁,所以session B在执行第一个update语句时就被锁住....

阿里面试官:MySQL的InnoDB引擎是如何解决幻读问题的?(下)
文章 2021-12-23 来自:开发者社区

阿里面试官:MySQL的InnoDB引擎是如何解决幻读问题的?(上)

SQL准备主键id,索引c。下面的语句怎么加锁,何时释放?该语句会命中d=5一行,对应主键id=5。因此在select 语句执行完后,id=5一行会加写锁。因两阶段锁协议,写锁会在执行commit语句时释放。由于字段d无索引,该查询语句会全表扫描。其他被扫到但不满足条件的5行记录会不会被加锁呢?InnoDB默认事务隔离级别可重复读。幻读若只在id=5一行加锁,而其他行不加锁:假设只在id=5一行....

阿里面试官:MySQL的InnoDB引擎是如何解决幻读问题的?(上)
文章 2021-12-21 来自:开发者社区

MySQL 性能优化的 9 种姿势,面试再也不怕了

1、选择最合适的字段属性Mysql是一种关系型数据库,可以很好地支持大数据量的存储,但是一般来说,数据库中的表越小,在它上面执行的查询也就越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度舍得尽可能小。例如:在定义邮政编码这个字段时,如果将其设置为char(255),显然给数据库增加了不必要的空间,甚至使用varchar这种类型也是多余的,因为char(6)就可以很好地完成....

MySQL 性能优化的 9 种姿势,面试再也不怕了
文章 2021-12-21 来自:开发者社区

面试官:MySQL 中的 3 大日志是指哪些?面试必问

日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志( binlog )和事务日志(包括redo log 和 undo log ),本文接下来会详细介绍这三种日志。binlogbinlog 用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形....

面试官:MySQL 中的 3 大日志是指哪些?面试必问
文章 2021-12-21 来自:开发者社区

面试官问:MySQL 删除表数据,磁盘空间还一直被占用,为什么?

最近有个上位机获取下位机上报数据的项目,由于上报频率比较频繁且数据量大,导致数据增长过快,磁盘占用多。为了节约成本,定期进行数据备份,并通过delete删除表记录。明明已经执行了delete,可表文件的大小却没减小,令人费解项目中使用Mysql作为数据库,对于表来说,一般为表结构和表数据。表结构占用空间都是比较小的,一般都是表数据占用的空间。当我们使用 delete删除数据时,确实删除了表中的数....

面试官问:MySQL 删除表数据,磁盘空间还一直被占用,为什么?
文章 2021-12-20 来自:开发者社区

面试官:谈谈 MySQL 联合索引生效、失效的条件?

这道题考查索引生效条件、失效条件。像这类问题才其实很有意义,建议各位以后面试其他伙伴的时候,多侧重这类问题的提问,比考察一般概念性的问题好多了。能大概考察应聘者对写的程序是有注重做优化,提高代码质量和程序性能呢 还是只简单的CV了事。联合索引失效的条件联合索引又叫复合索引。两个或更多个列上的索引被称作复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部分,....

面试官:谈谈 MySQL 联合索引生效、失效的条件?
文章 2021-12-11 来自:开发者社区

去BAT面试完的Mysql面试题总结(55道,带完整答案)

1、一张表里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把mysql重启,再insert一条记录,这条记录的ID是18还是15 ?2、mysql的技术特点是什么?3、Heap表是什么?4、mysql服务器默认端口是什么?5、与Oracle相比,mysql有什么优势?6、如何区分FLOAT和DOUBLE?7、区分CHAR_LENGTH和LENGTH?8、请简....

文章 2021-11-20 来自:开发者社区

面试官:MySQL如何实现查询数据并根据条件更新到另一张表?

数据案例原本的数据库有3张表。t_user :用户表,存放用户的基本信息。t_role :角色表,存放角色信息。t_role_user:存放角色与用户的对应关系。因为业务逻辑的改变,现在要把它们合并为一张表,把t_role中的角色信息插入到t_user中。首先获取到所有用户对应的角色,以用户ID分组,合并角色地到一行,以逗号分隔。SELECT t_user.id,GROUP_CONCAT(t_r....

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

Java面试那些事儿

手把手带您学习Java,开启编程之路。

+关注