Приветствую,
В поисках
оптимального / безопасного / быстрого способа хранения данных.
Работаю с
bash скриптом, который после обработки должен куда-то записывать "домен сайта" и потом сверять ли он уже обрабатывался.
На данный момент уже около
1,5 млн доменов накопилось (домен вида: yandex.ru, google.com, toster.ru и т.д).
Не думал, что будет такой объем данных по этому сразу не подумал о масштабируемости.
Учитывая, что это только "для меня" я реализовал глуповато и на скорую руку - у меня в папке sites/ создаются папки с именами доменов и потом просто поиск идет ли директория существует :) Все работает довольно шустро.
Пример кода:
if [ -d "$systemdir/$downloadfolder" ]
then
echo "nothing to do" # папка существует
else
mkdir -p $systemdir/$downloadfolder
fi
Но столкнулся с переездом сервера и необходимостью быстро разворачивать свою рабочую систему - теперь директорий слишком много и при переносе данных на другой сервер все сложно, даже если я просто делаю ls sites > list.sh и потом дописываю к каждой строке создание директории и выполняю как скрипт.
И вот я задумался об изменении принципа работы.
1. Можно все хранить в текстовом файле и делать запись / поиск по нему - файл порядка 130 мб - вроде бы работает быстро.
2. Можно хранить в mysql и с bash скрипта делать нужные мне запросы в базу
Но и в том и другом случае возникает проблема: в пики у меня будет около 800-1300 запросов в секунду на запись/поиск файла. Боюсь что может не корректно записаться информация в текстовом файле, а mysql при высоких нагрузках на сервер и большом кол-во запросов - попросту ляжет (LA > 700).
Как лучше все сделать ? Какие другие возможные варианты?
Или быть может остаться на моей "файловой структуре" хранения данных так как по мне это самый безопасный / производительный способ (конечно же имеется ввиду под мои текущие задачи) и не обращать внимание на время развертывания системы с бекапов?