作者:Kedar Vaijanapurkar
本文来源:https://www.percona.com/,爱可生开源社区翻译。
本文约 1300 字,预计阅读需要 5 分钟。
在以往的一些面试过程中,我发现了一些有趣的回答,它们很容易被为归类为“错误答案”。但有时,这些答案却发人深省或包含深刻的含义。本文涉及一些常见的 MySQL 问答,这些问答可能看起来“错误”或“有趣”,但实际上还有更多内容。我将分享一些看似“错误”或异想天开的答案,并仔细研究它们提供的宝贵经验和观点。
让我们来一次 MySQL 面试吧!
1一些有趣的问答
问:如何改进慢查询?
答:我们根本不执行查询。避免的查询就是改进。
虽然有些玩笑,但在执行查询之前应该仔细考虑是否有必要。避免不必要的查询并仅获取所需的数据可以显着优化查询的性能。
对于无法避免的查询,改进方法是:
- 监控慢查询日志并使用 pt-query-digest 生成慢查询的摘要报告。
- 在 MySQL 中使用
EXPLAIN
语句来了解查询执行计划,提供对表访问顺序、索引使用情况和潜在性能瓶颈的见解。
补充阅读
《如何查找和调优慢 SQL 查询》[1]
问:你们的故障恢复策略是什么?
答:我们的主数据库下有一个副本。
准备副本似乎是一个简单的答案,但它不是一个全面的故障恢复策略。实际上,仅依靠主服务器下的副本往往是不够的。
策略中,必须考虑多个方面,比如:
- 数据备份
- 高可用性
- 故障转移机制
- 异地存储
虽然拥有副本有利于负载平衡和读取扩展,但它并不能涵盖所有故障场景。
补充阅读
《为什么不能依赖副本进行灾难恢复的快速说明》[2]
问:延迟副本怎么样?
答:不错,故障也延迟了。
好吧,这是一场迟来的灾难。