Intereting Posts
Как включить двойной список автозаполнения в csh? Как убедиться, что SysRq всегда включен независимо от настройки kernel.sysrq? Как получить анимированное всплывающее окно в MATLAB для отображения моих функций Почему мой сервер прерывает ssh-соединения? Сайты SSL не будут загружаться, но сайты в списке HSTS Preload Проблема ping из определенного интерфейса Не удается загрузить систему с версией systemd выше 208 Как печатать переменные и значения оболочки для их копирования и вставки? Программа обновления файлов конфигурации bash извлечь подстроку из «1.2.3-SNAPSHOT» Есть ли команда grub2, чтобы иметь эффект вытаскивания экрана и вилки? Getmail: сброс соединения с помощью одноранговой сети (IMAP Idle) Regex для поиска файловых систем NFS, которые не монтируются с помощью nosuid, кроме тех, которые имеют особые потребности Нет perldoc для POSIX? Заменить скомпилированные символы юникода

Каковы последствия наличия большого количества файлов в каталоге в файловой системе ext4?

Моя задача – сохранить список JSON на диске (без использования какой-либо базы данных), и у меня есть следующие параметры:

  • Храните их в одном большом файле.

  • Храните их в отдельных файлах, с их идентификаторами.

Лично я предпочитаю второй вариант, так как он позволяет напрямую обращаться к любому JSON по их идентификатору, не прикасаясь ни к каким другим JSON. Тем не менее, есть почти от 0,1 до 1 миллиона записей JSON, и я боюсь возможных негативных последствий для базовой файловой системы (ext4 в моем случае):

  • Будет ли это превышать ограничения файловой системы на количество файлов (либо в каталоге, либо во всей файловой системе)?

  • Будет ли это причиной замедления при получении определенного идентификатора?

    Чтобы быть более конкретным, я считаю, что список файлов в каталоге поддерживается структурой inode каталога, но я не уверен, какие структуры данных (список или карта) он использует для хранения списка файлов. Есть ли увеличение производительности в поиске, если я использую иерархию каталогов? Например, 0123456789.json в root/01/0123456789.json вместо root/0123456789.json ?

Имея 1 миллион файлов в одном каталоге, это замедлит работу, но так будет анализироваться совокупный JSON с 1 миллионом записей. Лучше всего использовать хэшированные каталоги, но вы, вероятно, захотите пойти на два уровня, а не на один уровень. А именно, положите 0123456789.json в root/0/01/0123456789.json 987654321.json root/0/01/0123456789.json и 987654321.json в root/9/98/987654321.json .