正如其他人所指出的,在面试中,只要不触及某种受法律保护的区域(例如年龄,种族,性别等),面试中的任何问题几乎都是公平的,而且面试官会抛出异常向您提问,只是为了了解您对问题的反应以及如何找到问题的解决方案。此外,由于您似乎是应届毕业生,因此在询问您的工作经验以及在生产环境中解决了哪些问题方面,他们受到了一定的限制。因此,如果公司做了很多面向数据库的工作,他们提出的问题也可能与您面试的职位有关。
关于您的假设:
a)这些问题不能公平地归类为数据库开发问题。
也许吧,也许不是。如果您正在进行数据库开发,则将使用查询优化器并不时计划以确保查询没有明显问题。如果公司有数据库管理员或专家可以审查查询,则他们可能没有时间查看所有内容,并且他们也不想查看每个编码错误的查询。同样,开发人员负责维护其开发环境,包括任何数据库并让DBA处理生产方面也很常见。
b)我认为这些问题适合DBA面试,但完全不适合软件开发人员面试(无论有没有经验)。
他们可能适合DBA面试;但是无论如何,它们也是开发人员应该熟悉的主题,前提是仅能够识别出问题可能出在哪里并自己进行一些基本的故障排除。就像我之前提到的,如果公司资源有限,那么他们将要确保不会浪费人们的时间来解决可能是基本问题的事情。
c)第一个问题仅与数据库供应商有关。
具体细节可能是特定于供应商的,但是一般概念可以在任何地方应用,有时还可以向您展示您所需要的一般概念。如果您不想被一个单一的开发堆栈(即LAMP)所束缚,那么您将需要能够在面试中表明您了解核心概念并且可以轻松地迁移到不同的开发堆栈。
d)第二个问题是不公平的,因为软件开发人员通常不处理数据库性能日志,因为这是DBA的工作。
通常这是正确的,但是如果您的工作之一是为需要快速响应的给定数据库编写软件,那么您将需要确保尽最大努力编写这些查询,以便让一位特定领域的专家不会因书面查询问题而陷入困境。虽然您可能不需要了解日志告诉您的详细信息,但您可能需要能够识别明显的问题。
希望所有这些都对您有所帮助!