Типичная задача работы с социальными сетями обычно состоит в отслеживании и анализе упоминаний о продукте, компании или персоне, что подразумевает следующие этапы: выгрузку данных из социальной сети; сохранение сырых данных в базе на случай, если данные будут удалены из социальной сети, и для оперативной работы приложений; индексацию данных и поиск. Как оказалось, система мониторинга социальных сетей, ограниченная данными из одного субъекта России, может быть легко организована классическими средствами: например, СУБД MySQL, сборщика — на языке PHP, подсистемы индексации и поиска — на базе Apache Solr . Однако при увеличении объемов данных, собираемых из социальных сетей для их мониторинга, производительность такого решения резко падает на всех этапах обработки.
Тонкая оптимизация настроек MySQL, индексов и запросов позволяет вдвое увеличить производительность, но этого недостаточно — стало ясно, что требуется переработка всей системы хранения. Одно из решений — создание распределенной базы на основе нескольких серверов MySQL, оно успешно применяется, например, в сетях «ВКонтакте»,...
Это не вся статья. Полная версия доступна только подписчикам журнала.