运维mysql数据库面试题_运维面试题之数据库

运维mysql数据库面试题_运维面试题之数据库mysql篇:mysql主从复制原理?mysql的复制是基于3个线程1、master上的binlogdump线程负责把binlog事件传到slave2、slave上面的IO线程负责接收binlog事件,并写入relaylog3、save上面的SQL线程负责读取relaylog并执行innodb和myisam引擎的主要区别?InnoDB支持事物,MyISAM不支持InnoDB支持外键,M…

大家好,又见面了,我是你们的朋友全栈君。

mysql篇:

mysql主从复制原理?

mysql的复制是基于3个线程

1、master上的binlog dump线程负责把binlog 事件传到slave

2、slave上面的IO线程负责接收binlog 事件,并写入 relay log

3、save上面的SQL线程负责读取relay log并执行

innodb和myisam引擎的主要区别?

InnoDB支持事物,MyISAM不支持

InnoDB支持外键,MyISAM不支持

InnoDB不支持全文索引,MyISAM支持

InnoDB支持锁行,MyISAM只支持锁表

InnoDB数据存储在表空间,MyISAM存储在文件中

binlog支持哪几种格式?

statement:只记录执行语句

row:记录每行数据的变更过程

mixed:上面两种模式的混合模式,mysql会根据具体的SQL来决定记录statement或者row格式

XtraBackup备份的原理?

直接拷贝表空间文件,由于不锁表所以数据可能会不一致,所以会同时监听mysql的redo log日志变化,redo log包含了InnoDB数据的所有改动情况

在通过redo log对表空间文件进行crash recovery从而生成完整的备份

为什么要用索引?

默认情况下mysql要查找一个数据,需要从第一行数据开始读整个表直到读到到目标数据

索引也是一张表,该表保存了主键与索引字段,并指向实体表的记,有索引的情况下,会先在索引中查找对应的值,然后根据匹配的索引记录找到对应的数据行

redis篇:

redis的数据类型有哪几种?

字符串(String)

哈希(Hash)

列表(List)

集合(Set)

有序集合(sorted set)

reids的线程模型?

redis的IO模型是单线程,使用多路线程I/O复用模型来提升处理效率

使用单线程主要是redis的数据是在内存当中的IO速度很快,多线程会需要切换上下文从而影响CPU性能

redis的持久化策略?

RDB:一快照形式是直接把内存中的数据保存到一个dump文件中,按变更次数定时保存

AOF:redis把所有修改的命令都存到一个文件里

redis的主从复制过程?

先进行一次全量同步,master节点生成RDB文件的快照,slave接收到文件后清除旧数据,然后把文件加载到内存中

当master有写操作时,master使用PSYNC命令连接到slave同步增量数据

reids集群哨兵模式的特性?

监控:每个哨兵会不断监控master和slave是否在正常工作

提醒:如果哨兵监控的redis出了问题,哨兵可以通知管理员和其它应用程序

故障转移:如果master未按预期工作,哨兵可以选举出新的master继续工作

配置程序:客户端需要先连接哨兵,哨兵会告知客户当前master节点的地址

redis事务有什么特点?

redis事务本质上一组命令的集合,其特点就是一次性、顺序性、排他性的执行一个队列中的一系列命令

当一个命令执行失败其它命令还会继续执行,也不能回滚,所以redis的事务不能保证原子性

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/134677.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python:暴力激活成功教程密码

    Python:暴力激活成功教程密码简介:暴力激活成功教程密码的方式一般是枚举法进行破译尝试,通过一次次不同的输入尝试从而得出最终的密码,所以密码的长度和复杂性就尤为重要。本文仅以范例,警示大家在创建密码的时候,应当尽量选择组合复杂度高的,有一定长度的密码,而不是123456之类的简单密码。激活成功教程的思路:1、获取目标密码长度,一般为4,6,12,15,18位长度。2、获取目标密码组成的范围,一般为数字,小写字母,大写字母,特殊符号3、组装密码,通过itertools模块组装。Python:常见排列组合问题处理4、枚举破译。例如生活中最常见的

  • windows DLL注入之注册表注入

    windows DLL注入之注册表注入windows下的注入之注册表注入:1.概念介绍:注入与Hook:注入与hook经常被人们混淆,其实注入和hook是两种windows下的编程技术(当然,其他平台也有相关的技术),由于在安全编程中,两项技术经常被同时结合起来使用,所以常常导入混淆。今天我们就谈谈windows下的注入技术。1.1Hook:hook的中文名叫钩子,hook是程序设计中最为灵活多变的技巧之一,hook对指…

  • vue中map用法_vue里面的meta用法

    vue中map用法_vue里面的meta用法后端给我返回格式是这样[‘2018-8-14’,‘2018-8-14’]但是我是想要{date:“2018/08/13”,title:“”}{date:“2018/08/14”,title:“”}这样的格式一段代码搞定letarr=res.data;letnewArr=arr.map(val=>{…

  • mysql数据库日志存储位置_MySQL数据库之mysql日志文件在哪 如何修改MySQL日志文件位置…「建议收藏」

    mysql数据库日志存储位置_MySQL数据库之mysql日志文件在哪 如何修改MySQL日志文件位置…「建议收藏」本文主要向大家介绍了MySQL数据库之mysql日志文件在哪如何修改MySQL日志文件位置,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。MySQL日志文件相信大家都有很多的了解,MySQL日志文件一般在:/var/log/mysqld.log,下面就教您修改MySQL日志文件位置的方法,供您参考。今天需要改MySQL日志文件的位置,发现在/etc/my.cnf中怎么也改不…

    2022年10月14日
  • OpenGL的glPushMatrix和glPopMatrix矩阵栈顶操作函数详解

    OpenGL中图形绘制后,往往需要一系列的变换来达到用户的目的,而这种变换实现的原理是又通过矩阵进行操作的。opengl中的变换一般包括视图变换、模型变换、投影变换等,在每次变换后,opengl将会呈现一种新的状态(这也就是我们为什么会成其为状态机)。有时候在经过一些变换后我们想回到原来的状态,就像我们谈恋爱一样,换来换去还是感觉初恋好,怎么办?强大的openg…

  • BigDecimal.setScale方法

    BigDecimal.setScale方法BigDecimal.setScale()方法用于格式化小数点BigDecimal.setScale(1)表示保留一位小数,默认用四舍五入方式 BigDecimal.setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如1.11会变成1.1 BigDecimal.setScale(1,BigDecimal.ROUND_UP)进位处理,1.11变成1.2 BigD…

    2022年10月20日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号