Должен ли php программист уровня middle хорошо разбираться в базах данных?
Будет ли простое перечисление типов индексов (Hash, B-Tree...) считаться приемлемым ответом?
Нет. По хорошему ты должен ещё знать, для каких ситуаций какой лучше и как они примерно устроены.
Но это в принципе не обязательная вещь - если скажешь что-то типа

Не приходилось сталкиваться с задачами, где нужно прям глубоко в индексах разбираться, но если такая ситуация возникнет, то я посмотрю документацию и решу.

То это тоже будет хороший ответ, если ты действительно можешь определить, к какой задаче что лучше применить.
У меня раз спрашивали про то как настроить репликацию и что такое binary log (конкретно про MySQL). Я не знаю - это называется "хорошо разбираться" или нет?