zoukankan      html  css  js  c++  java
  • 运维面试题之数据库

    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的事务不能保证原子性

  • 相关阅读:
    AtCoder Grand Contest 015 C
    AtCoder Grand Contest 011 F
    AtCoder Regular Contest 076 E
    AtCoder Grand Contest 016 B
    AtCoder Grand Contest 010 F
    AtCoder Regular Contest 081 F
    AtCoder Grand Contest 018 D
    AtCoder Regular Contest 076 F
    yii2.0 如何按需加载并管理CSS样式及JS脚本
    ebay商品基本属性组合成数据表格式,可用上传到系统递交数据
  • 原文地址:https://www.cnblogs.com/37yan/p/10730624.html
Copyright © 2011-2022 走看看