GrabDuck

Как правильно выбрать БД для проекта

:

Допустим есть проект, естественно на стадии проектирования.

Как обычно есть дефолтная БД Mysql - как обычно.

И дальше никто не парится о том как и что будет работать.

Вопрос:

"Исходя из каких тестов/соображений/документации и прочего нужно/можно выбирать нужную БД"

Что будет:

  • Частые запросы на сторонний сервер
  • Запись данных ответов от сервера
  • Обновление/получение информации из БД
  • Сколько будет инфы представить пока трудно, запросов на запись в день во все таблицы около 100-500К. С таким числом мускул справится.

Но продолжим:

  • У нас есть другая ситуация с униками, коотрых 10-100-300К в сутки.
  • Кол-во записей в БД возрастает
  • Кол-во информации которая должна быть видна всем - должна быть доступна сиюминутно, т.е. постоянно висеть в памяти (Redis)/
  • Хранить нужно много XML
  • Быстрый поиск информации
  • Хорошая связь между таблицами
  • Возможность кэширования запросов.
  • Возможность Бэкапов.

Да и вообще что выбрать NoSql или Sql БД?

Как их затестить с какими-либо данными и понять результаты, но за короткий срок, чтобы не вдаваться в глубокие познания каждой БД.

На чем тестировать? Какими программами? Запросами? т.е. на что ориентироваться разработчикам при описании проекта и выбора какую БД использовать? Внятно объяснить начальству и/или заказчику почему именно эта БД, а не другая.

Раз разговор про Yii в общем контексте, то по идее переход с одной БД на другую не должен составить проблем т.е. у нас MVC приложение, которое работает с моделями, и моделям без разницы какая БД, ну может быть что-то и придется подкрутить но не в глобальных масштабах. И как быть если все таки в процессе эксплуатации, разработчики поймут что будет нужна другая БД, и без потерь перейти на другую?

Наверное вот такой вопрос, но скорее всего это обсуждение т.к. многие сталкивались/сталкиваются с такими вопросами.

//upd вопроса, нужны еще вещи для решения данной задачи