首页 > 其他分享 >面试题总结

面试题总结

时间:2024-11-13 22:45:31浏览次数:1  
标签:总结 语句 面试题 log 记录 binlog 磁盘 日志

集度
1、mysql数据库插入过程
① 执行器先根据where条件查询修改的数据放入内存中,如果数据在内存中,直接返回给执行器,如果不存在,根据条件去磁盘中读取。
② 执行器获取返回的数据先进行数据的修改,得到新行数据,再调用引擎接口写入这行数据。
③ 写入过程,先更新内存,更新操作记录redo log,这时redo log处于 prepare状态。随时可以提交。
④ 然后执行器,将binlog日志写入磁盘
⑤ 最后执行器提交事务,刚刚redo log日志标记为已提交,此时返回更新完成。
⑥ 根据配置的磁盘写入策略,定时写入磁盘中。
2、mysql 各种日志作用及原理
binlog
redo log
undo log
error log
slow query log:慢sql日志
relay log 中继日志
3、binlog的格式
二进制日志,它记录了数据库的所有改变,并以二进制的形式保存到磁盘中。它可以用来查看数据库的变更历史,数据库增量备份,恢复,Mysql主从复制。从5.7.22版本开始,Mysql默认的格式由STATEMENT改为了ROW。
基于SQL语句的复制(Statement)
每一条会修改数据的sql都会记录到binlog中。
优点:不需要记录每一行的变化,减少了binlog的日志量,节约了IO,提高了性能。
缺点:由于记录的只是执行语句,为了这些语句能在slave上正确运行,因此还必须记录每条语句在执行的时候的一些相关信息,以保证所有语句能在slave得到和在master端执行时候相同 的结果。另外mysql 的复制,像一些特定函数功能,slave可与master上要保持一致会有很多相关问题。

基于行的复制(Row)

优点:binlog可以不记录执行sql语句的上下文相关信息,仅记录那一条数据(每个字段)被修改成了什么样子。所以row level的日志会非常清楚的记录每一行数据的变化细节,而且不会出现某些特定情况下,存储过程,函数,触发器无法被复制的过程。
缺点:所有的执行的语句当记录到日志中的时候,都将以每行记录的修改来记录,这样可能会产生大量的日志内容。
新版本的MySQL中对row level模式也被做了优化,并不是所有的修改都会以row level来记录,像遇到表结构变更的时候就会以statement模式来记录,如果sql语句确实就是update或者delete等修改数据的语句,那么还是会记录所有行的变更。

混合模式复制(Mixed)
从5.1.8版本开始,MySQL提供了Mixed格式,实际上就是Statement与Row的结合。
在Mixed模式下,一般的语句修改使用statment格式保存binlog,如一些函数,statement无法完成主从复制的操作,则采用row格式保存binlog,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志形式,也就是在Statement和Row之间选择一种。

4、SpringCloud组件都用的那些?OpenFeign底层封装
本质底层封装HttpURLConnection发出的HTTP请求。另外,如果有需要,你也可以替换成第三方库,HttpClient或者OkHttp。

5、redis 大Key
拆分多个kv,分配到不同的redis服务器中。

6、ZSet为什么不用B+树
ZSet:压缩链表+跳跃表
跳跃表(SkipList)是一种能高效实现插入、删除、查找的内存数据结构,这些操作的期望复杂度都是O(logN)。
与红黑树以及其他的二分查找树相比,跳跃表的优势在于实现简单,而且在并发场景下加锁粒度更小,从而可以实现更高的并发性。
正因为这些优点,跳跃表广泛使用于KV数据库中,诸如Redis、LevelDB、HBase都把跳跃表作为一种维护有序数据集合的基础数据结构。
redis基于内存,设计是尽可能提高读写效率。插入性能搞,操作简单,无需维护B+树特征。
而B+树是mysql InnerDB引擎的数据存储结构,磁盘存储,可存储数据量更大,需减少磁盘IO,提高访问效率。B+树层数少,进而减少磁盘IO。

禹数
1、nacos系列,对比eureka
nacos源码,启动过程,nacos数据落磁盘吗?

2、sentinel相关,模式

3、redis如何自动扩容

4、redis集群方式

5、分布式锁,redis分布式锁缺陷,redissen是否解决了缺陷问题。

6、本地所。sync的锁升级过程,如果执行hashcode,是否还会进入轻量级锁。

7、seata机制 源码

8、jvm相关 GC相关

9、dubbo+zk 与 springcloud 服务之间调用区别及优缺点。

标签:总结,语句,面试题,log,记录,binlog,磁盘,日志
From: https://www.cnblogs.com/stubborn-dude/p/16548037.html

相关文章

  • 跨境电商新手如何选品:2种卖家4个路线总结
     如果问我,新手入驻跨境电商最难的一个步骤是什么?我会选择选品。选品在跨境电商中起着至关重要的作用,可谓是“牵一发而动全身”。一个正确的选品能够为后续的运营工作奠定坚实的基础。当我们选对了产品,就如同在茫茫商海中找到了一座宝藏。如果选品不当,后续的运营将会变得异......
  • 客户端与服务器之间双向通讯的5种方式总结(完整代码演示)
    客户端与服务器之间双向通讯的5种方式总结(完整代码演示)  目录1.polling轮循2.long-polling长轮循3.iframe流4.EventSource流5.websocket 首先简单说一下常用的http协议的特点:http是客户端/服务器模式中请求-响应所用的协议,在这种模式中,客户端(一般......
  • 数据库系列: 主流分库分表中间件介绍(图文总结)
    数据库系列:主流分库分表中间件介绍(图文总结) 相关文章数据库系列:MySQL慢查询分析和性能优化数据库系列:MySQL索引优化总结(综合版)数据库系列:高并发下的数据字段变更数据库系列:覆盖索引和规避回表数据库系列:数据库高可用及无损扩容数据库系列:使用高区分度索引列提升性能数据......
  • 3大主流分布式事务框架详解(图文总结)
    3大主流分布式事务框架详解(图文总结) 1简要介绍随着微服务架构的不断发展,分布式系统逐渐普及到后端领域的每一个角落。在分布式系统中,跨多个服务的数据一致性一直是一个重大挑战,为解决这一挑战,分布式事务应运而生。作者在之前的文章《五种分布式事务解决方案》和《4大主流分......
  • 楼板的厚度、隔音效果和安全级别通常会受到建筑设计规范、建筑用途、楼层高度以及所在
    楼板的厚度、隔音效果和安全级别通常会受到建筑设计规范、建筑用途、楼层高度以及所在地区的建筑标准等多种因素的影响。以下是楼板相关的标准要求,特别是关于厚度、隔音和安全级别的标准信息的一个表格化总结:标准类别要求/标准参考标准/规范说明楼板厚度住宅楼板厚度......
  • reverse学习总结(3)
    一,luck_guy先查壳,没有特殊情况,进入ida分析猜测是输入v4,让后对v4进行修改(查了一下单词,patch_me相当于加密等操作吧)我们跟进让后进入get_flag函数发现有一个生成随机数的函数,并且只有特定的数才可以得到flag,与标题:luck_guy相吻合,所以我们直接分析代码就可以,随机......
  • 亚马逊铺货、跟卖之FBM配送模板的设置与应用-基于月亮树跨境AI自动调价插件综合运用的
    背景亚马逊后台的展示界面频繁出现问题,导致许多做铺货和跟卖的小伙伴在使用FBM(自发货)模式时,有时会遇到运费无法正常显示的情况。而在购物车界面才会显示运费久而久之,会出现这样的业务诉求:“我这里有4个商品,其中有2个想设置成免运费的模式。”将亚马逊配送模板设置好了,配......
  • App WebView白屏检测及解决总结,包括Android 和 iOS
    App上WebView白屏在移动端上场景的H5页面白屏问题,根据平台分为Android和ios端上H5白屏问题(相关解决和优化基于移动端侧)之前在自己博客发布过,最近有做朋友问就再发出来下,希望能帮助更多人,重要的是了解白屏问题的原理和解决思路。Android的的白屏问题表现现对比较多些,按问题......
  • 全面覆盖:AI大模型微调产品经理面试题集锦,非常详细收藏我这一篇就够了!
    前言这两天跟很多做程序员的朋友聊天,怎么看全网火爆的大模型。让我挺意外的是,大家的反馈普遍都很焦虑。在AI大模型微调领域的产品经理面试中,总会遇到一系列与技术细节、项目经验、市场趋势以及职业规划相关的问题。以下是一些建议的面试题及其回答示例:面试题1:请简述你对......
  • Sql优化技巧总结(面试必刷!!!)
    摘要    近段时间,面试官关于Sql优化的提问已经越来越多了,Sql优化可以说是已经成为了面试必备技能之一。本文从Sql语句、硬件设备以及Java程序三个方面详细的讲解关于Sql优化的技巧。目录摘要一、Sql语句优化1、避免使用Select*总结2、使用(创建)索引2.1、不能......