- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Может быть, невнимательно прочитал все ответы, но по искомой задаче: зачем все id хранить в одном файле? У меня полно сайтов-самописов, с похожими задачами, решаю элементарно - создаю файл с нужным id в структуре папок. Проверка на наличие этого id не требует каких-либо ресурсов, кроме того, чтобы проверить, есть ли такой файл в системе. Причем, если нужно зачем-то отмечать, от кого именно блок этого id - в сам файл записывать эту информацию. На проверку наличия файла это никак не влияет, а если нужна расширенная информация - она есть в самом файле. И, собственно, все.
такой вариант обсуждался. Я пока реализовал альтернативный. Высказывались опасения - как себя будет вести файловая система с миллионом файлов, насколько легко это все будет забэкапить. Поделитесь опытом.
все id хранить в одном файле?
Не все, разбивается на батчи по первым двум цифрам например и потом поиск идет только в соответсвующем файле
Высказывались опасения - как себя будет вести файловая система с миллионом файлов, насколько легко это все будет забэкапить. Поделитесь опытом.
Про миллион не знаю, но есть у меня один "странный" проект, где файлов больше 400 000 (ну так исторически сложилось), сервер с ним бэкапится примерно за то же время, что и соседний, где файлов в 100 раз меньше, файл бэкапа не раздут.
Про миллион не знаю, но есть у меня один "странный" проект, где файлов больше 400 000 (ну так исторически сложилось), сервер с ним бэкапится примерно за то же время, что и соседний, где файлов в 100 раз меньше, файл бэкапа не раздут.
Понятно, до этой части я не дошел. Проверю в моем случае как только перепишу скрипт по принципу 1 айпишник - 1 файл.
А можно поинтересоваться - что значит бэкапить сервер? Что вы именно там бэкапите если базы нет? Имеете ввиду вот эти 400 тыщ?
Высказывались опасения - как себя будет вести файловая система с миллионом файлов, насколько легко это все будет забэкапить. Поделитесь опытом.
На счет миллиона файлов не подскажу, такого объема не было, было в несколько сотен тысяч, где-то до полумиллиона. Причем, по глупости, я в первый раз запулил почти сотню тысяч файлов в один каталог. Этот сайт до сих пор прекрасно себя чувствует и работает без проблем с высокой скоростью. Тут весь смысл в том, что при такой постановке задачи сайту и серверу не требуется делать списки каталога, он обращается напрямую к уже указанному пути файла, т.е. не тратит какие-либо иные ресурсы кроме конкретной задачи чтения данного файла или, если нужно просто проверить наличие файла - то это еще проще и быстрее.
Т.е., если нет задачи найти искомый id в папке, а уже зная этот id проверить его наличие - это быстро. Если же в задаче, по какой-то причине, нужно делать листинг каталога и потом искать подходящие файлы - вот это будет ооооочень медленно на больших объемах файлов.
Чтобы уменьшить нагрузку на поиск и построение дерева каталогов и файлов - оптимально хранить id не в одной папке, а в нескольких, например id "11112222333" хранить в папке 1/11/, а id "222333444" в папке 2/22. Тут вариантов вложений может быть сколь угодно, сильно зависит от того, какие именно id и группы повторов у них есть, чтобы выбрать оптимальный путь каталогов. Тогда и проблем с построением папок будет значительно меньше, поскольку одна папка будет содержать список не в сотни тыс файлов, а в сотни-тысячи, что позволяет работать гораздо быстрее.
С бэкапом так же проблем нет. Основная проблема тут в том, что, конечно, самих файлов много и будет значительно дольше собираться сам архив, но, кроме этого - никаких трудностей.
Про миллион не знаю, но есть у меня один "странный" проект, где файлов больше 400 000 (ну так исторически сложилось), сервер с ним бэкапится примерно за то же время, что и соседний, где файлов в 100 раз меньше, файл бэкапа не раздут.
В последнее время меня удивляют типичные реакции людей в интернете. Какое-то тотальное недоверие всех ко всем.
Это тотальная самоуверенность людей в интернете.
Все всё знают, все всё умеют, и дальше по списку.
С бэкапом так же проблем нет. Основная проблема тут в том, что, конечно, самих файлов много и будет значительно дольше собираться сам архив, но, кроме этого - никаких трудностей.
Я например могу накидать вам кучу трудностей, которые вы даже не отследите. Например, у вас будет бэкапится файл с ошибкой и вы даже не будете понимать что не так: просто он будет исключен их поиска, соответственно результат не нарантирован. А найти ошибку - ну я даже не представляю навскидку как.
При правильной организации БД это будет исключено. Роллбэк неправильно транзакции нарантирует что у вас БД будет D- устойчивой. Опять же правильно нстроенный бэкап позволяет хранить кучу версий базы на промежуток времени.
with open(f"file_finder/storage/{filename}") as f:
data_ip = f.read()
if data_ip:
ip_list = data_ip.split(' ')
Отличный скрипт.
Только вот тут каждый раз происходит чтение всего файла в память, а затем разбивка по пробелам?
В некоторых случаях эффективнее было бы читать построчно файл, где по 1 записи на строку.
Если строка найдена, то прерывать цикл поиска.