美文网首页
MYSQL面试宝典,技术问答

MYSQL面试宝典,技术问答

作者: 刘小白DOER | 来源:发表于2020-10-02 21:24 被阅读0次

    笔者最近看完一本mysql书籍-mysql王者晋级之路,此书适合初学者,比书籍-高可用MySQL简单实在得多,现将文中末尾的问答知识和自己的理解分享出来供大家参考。

1、mysql分支版本

    mariadb、drizzle、percona server。最出名的就是mariadb,不仅仅是mysql的替代品,而且是创新和提高。mysql被甲骨文收购后,更新速度方面也不如mariadb。mariadb支持多源复制、galera cluster集群、spider水平分片、tokuDB存储引擎。

2、mysql存储引擎MyISAM和InnoDB的不同之处。

    2.1事务支持不同。MyISAM不支持事务,InnoDB支持事务。

    2.2锁粒度不同。MyISAM是表锁,InnoDB是行锁。

    2.3存储空间不同。InnoDB缓存索引文件和数据文件,MyISAM只能缓存索引文件。

    2.4存储结构不同。MyISAM数据文件是.MYD(mydata),索引文件是.MYI (myindex),InnoDB所有表都保存在一个数据文件中(.Ibd)。

3、mysql binlog有几种格式

    statement格式,不需要记录每一行,减少binlog日志量,节约io,提高性能。但是特殊函数或者夸库操作时容易丢失数据。生产中不建议使用。

    row格式,清晰记录每一行数据信息,不会出现夸库数据丢失的情况,安全性高。但是会产生大量的binlog,网络开销大。生产中推荐使用。

    mixed格式,DDL语句会记录成statement,DML语句记录成row。

4、mysql主从复制的具体原理

    主服务器把更新记录到二进制日志,从服务器通过IO thread向主库发起binlog请求,主服务器通过IO dump thread把二进制日志传递给从库,从库通过IO thread记录到自己的中继日志中。然后通过SQL thread应用中继日志中SQL的内容。

5、mysql主从延迟的原理是什么,如何监控主从延迟,如何解决主从延迟问题。

    主库可以并发写入,但从库只能通过SQL thread完成任务,这是出现延迟最核心的原因。其他方面的原因:

    5.1主从之间的同步不是实时同步的,而是异步的同步,主库提交事务后从库再执行一遍。

    5.2在主库上对没有索引的大表进行delete或者update操作。

    5.3从库的硬件配置较差。

    5.4网络抖动导IO线程复制延迟。

    监控方面可以使用比较主从服务器之间的position号差异值,还可以通过第三方工具percona-toolkit中的pt-heartbeat命令进行主从延迟监控。

    解决办法:

    1)避免让数据库进行大量运算,数据库只是存储数据的,让应用端多分担些压力或者可以通过缓存完成。

    2)避免无用IO消耗,可以增加高转速磁盘、SSD等。

    3)规划初期要分库分表策略,避免单表单库过大带来额外的复制压力。

    4)选择PXC架构,实现多节点写入。

    5)mysql5.7的并行复制功能。

6、如何优化一条慢查询语句。

    6.1表的设计层面,数据类型选择是否合理。

    6.2大表的碎片整理是否完善。

    6.3explain审查表的执行计划,判断字段是否使用索引。

7、服务器负载过高或者网页打开缓慢,优化思路。

    可以通过操作系统、数据库、程序设计、硬件方面四个维度方面解答,找到瓶颈位置,制定好优化方案。体系制定好后要在测试环境进行优化方案的测试。效果良好再要用到生产环境上。

8、mysql主备架构优缺点。

8.1M-S主备复制。

8.2MHA。故障切换时自行判断哪个从库与主库最接近,减少数据丢失风险。

8.3MM+keepalived。keepalived都要设置成backup模式,非抢占模式,通过优先级来判断决定谁是主库,避免发生脑裂、冲突现象。

8.4PXC架构。

8.5中间件proxySQL。

欢迎提出宝贵意见,笔者进行修改增加。

相关文章

  • MYSQL面试宝典,技术问答

    笔者最近看完一本mysql书籍-mysql王者晋级之路,此书适合初学者,比书籍-高可用MySQL简单实在得多,...

  • 【面试问题宝典】-项目管理篇1

    GITHUB,segmentfault上经常有技术面试问题宝典,产品经理面试宝典回答太少,特此朋友贡献的问题将持续...

  • 面试

    面试 面试宝典 宝典2

  • 数据库老司机的MySQL面试宝典:自我介绍与技术问答

    面试就是一个检验自己学习水平的平台,笔者一直从事数据库相关的培训工作,总是会遇到有些学生平时学得很好,而且掌握知识...

  • 全网最全Android面试题(附视频,附App)

    Android程序员面试宝典 需求描述 各种新技术接触渠道比较狭窄, 面试没有底气。 常见面试知识点及回答没有较系...

  • 1.MySQL面试宝典

    1.八股文带你吊打面试官之MySQL 我们很多小伙伴平时会看很多面试八股文,但是经常遇到一个问题,结论是知道了,但...

  • 干货!技术面试宝典系列

    最近很多同学都为找不到心仪的工作而烦恼...投出去的简历就像石沉大海,鲜有反馈..偶尔有个小红点也是广告居多,招聘...

  • Android面试宝典 - 技术篇

    一、JAVA 1. Java的三大特性 1.1 封装 封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式 封...

  • mysql大厂面试问答

    本文总结最近一段时间面试中被问到的专项知识点,一些基础的内容可以直接到 GitHub - laozhu123/in...

  • java面试宝典全套含答案

    java面试宝典全套含答案1、java软件工程师面试宝典之资料准备(一本辟邪剑谱交给你)2、《java面试宝典》之...

网友评论

      本文标题:MYSQL面试宝典,技术问答

      本文链接:https://www.haomeiwen.com/subject/xcmbuktx.html