Быдлокодерского рукожопия пост.
В общем, есть у меня разработка - краулер, который я сначала писал для своей дипломной работы по Media Studies, для того, чтобы стянуть все статьи с BBC и CNN, но в дальнейшем интегрировал эту тему для своих коммерческих проектов.
Имея центральную базу данных и место хранилища соскрапленных HTML, краулер может горизонтально маштабироваться через агенты, которые асинхронно краулят дату с сайтов.
Возникала у меня проблема. Сколько бы машин я не задйствовал в краулинге, максимальное количество html документов в минуту не привышало 120. Чего мне в принципе хватало, но когда дело дошло до промышленных рельс, начала чесаться репа.
Сегодня рашил разобраться где же собственно бутылочное горлышко. Оказалось, в основной таблице, где миллиардами складируются ссылки, собранные в ходе парсинга, поле ID не проиндексировано(!!!). Просто вот забыл указать его как primary key при создании и все. Создав индекс, прозводительность значительно выросла. И максимальный пик, который я сегодня видел, был 900 статей в минуту. Что как бы 750% и еще не предел.
И сколько подобного говна еще разбросано по проектам, одному GOD-у известно. Будьте бдительными! Одна пиздюлинка в начале можете обойтись в копеечку потом.