首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL面试问题

MySQL面试问题
EN

Stack Overflow用户
提问于 2008-09-15 09:58:36
回答 3查看 16.7K关注 0票数 9

我被要求筛选一些MySQL数据库管理员/开发人员职位的候选人,以获得一个需要企业级技能的职位。

我自己也是SQL Server的一员,所以我知道从可伸缩性/设计等角度来看,我会寻找什么,但是关于MySQL,我有什么特别的问题要问吗?

理想情况下,我想问他们关于MySQL的企业级功能,这些功能通常只在处理大型数据库时使用。需要将企业开发人员与家庭/小型网站之类的人分开。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-09-15 17:18:11

虽然SQL Server和MySQL都是关系型数据库管理系统,但MySQL有许多独特的功能,可以说明新手和专家之间的区别。

您的第一步应该是确保候选人能够熟练地使用命令行,而不仅仅是phpMyAdmin之类的图形用户界面工具。在面试期间,试着让应聘者编写MySQL代码来创建数据库表或添加新索引。这些是非常基本的查询,但正是GUI工具阻止新手掌握的类型。您可以向更熟悉MySQL的人复核答案。

应聘者能否展示连接如何工作的知识?例如,尝试要求候选人构造一个查询,该查询返回表1中没有匹配条目的表1中的所有行。答案应该包含左连接。

请候选人讨论备份策略,以及每种策略的各种优缺点。候选人应该知道,除非所有的表都是MyISAM,否则直接备份数据库文件不是一个有效的策略。候选人应该明确提到mysqldump作为备份的基石。更复杂的备份解决方案包括ibbackup/innobackup和LVM快照。理想情况下,候选人还应该讨论备份如何影响性能(一种常见的解决方案是使用从服务器进行备份)。

应聘者是否有复制方面的经验?常见的复制配置有哪些?每种复制配置都有哪些优点?最常见的设置是主-从,允许应用程序将SELECT查询卸载到从服务器,同时使用从服务器进行备份,以防止主服务器上出现性能问题。另一种常见的设置是master-master,其主要优点是能够在不影响性能的情况下更改模式。确保候选人讨论了一些常见问题,例如克隆从服务器(mysqldump + notation of the binlog position)、使用负载均衡器或MySQL代理进行负载分配、通过将较大的查询分成块来实现resolving slave lag,以及如何将从服务器提升为新的主服务器。

候选人将如何解决性能问题?他们是否有足够的底层操作系统和硬件知识来诊断瓶颈是CPU瓶颈、IO瓶颈还是网络瓶颈?他们能演示如何使用EXPLAIN发现索引问题吗?它们是否提到了慢查询日志或配置选项,如键缓冲区、临时表大小、innodb缓冲池大小等?

候选人是否了解每个存储引擎的微妙之处?(MyISAM、InnoDB和MEMORY是最主要的)。他们是否了解每个存储引擎如何优化查询,以及如何处理锁定?至少,候选人应该提到MyISAM发布了一个表级锁,而InnODB使用了行级锁。

对实时数据库进行模式更改的最安全方法是什么?候选人应该提到master-master复制,以及通过创建具有所需配置的新表并使用mysqldump或INSERT INTO ...来避免ALTER TABLE的锁定和性能问题。选择,然后选择重命名表。

最后,专业人士的唯一真正衡量标准是经验。如果候选人不能指出在高可用性环境中管理大型数据集的特定经验,他们可能无法在纯知识水平上备份他们拥有的任何知识。

票数 39
EN

Stack Overflow用户

发布于 2008-09-15 10:13:36

我会问不同的存储引擎之间的区别,它们的优点和缺点。

大胆地介绍复制,并深入挖掘复制的缺点,特别是在使用带有自动增量键的表时。

如果它们仍然存在,那么可以询问复制延迟、复制延迟的影响以及监控复制延迟的标准模式。

票数 6
EN

Stack Overflow用户

发布于 2008-09-15 10:05:35

我认为这取决于数据库类型:事务型还是数据仓库?

无论如何,对于所有类型,我都会询问特定于MySQL复制和集群、性能调优和监控概念的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档