Я создал прототип веб-приложения на PHP как проект запуска с базой данных MySQL, но теперь все это нужно переписать.
Я хотел бы сохранить PHP в качестве серверного языка, но я не знаю, какую базу данных мне следует использовать, чтобы иметь возможность постоянно искать и извлекать данные, используя в основном AJAX.
Я думаю, что реляционная база данных MySQL справится с этой задачей некоторое время, но я бы хотел быть готовым к тому времени, когда у меня будет много пользователей со всего мира, которым необходимо быстро получить доступ к своим данным. Сейчас все, что у меня есть, это VPS в Digital Ocean, который работает на PHP и MySQL, он хорошо обслуживает 70 моих тестовых пользователей.
Но что, если мои цифры начнут увеличиваться? Я не могу просто хранить сотни миллионов (или миллиардов) строк данных в одной базе данных без проблем с задержкой и т. Д., Могу ли я? Должен ли я рассмотреть возможность использования Hadoop с самого начала, чтобы у меня не было таких проблем в будущем? Как мне подготовиться к необходимости масштабировать вещи в будущем?
Вы можете определенно пойти на Hadoop. Начнем с 5 узлов кластера, а затем масштабировать по мере необходимости. Иначе я бы предложил пойти на Amazon EMR Вы всегда можете увеличивать и уменьшать масштаб по мере необходимости.
Вы можете использовать HBase в качестве базы данных поверх hadoop и использовать Улей который является квадратным языком. Первоначально это было разработано Facebook для внутренних целей (точно такая же ситуация, как у вас, они не могли обрабатывать огромные данные, и большая часть кода написана на PHP и mysql). Улей преобразует команды sqlike в map и запускает работу в кластере hadoop.
Надеюсь это поможет!
Других решений пока нет …