3

Мой сайт требует 10 000+ 1-2 секундных mp3-клипов, сохраненных в виде отдельных файлов. Каждый из них составляет около 12 КБ.

Есть ли потенциальные проблемы с их хранением в одной огромной папке как word_1.mp3, word_2.mp3 и т. Д ...? Есть ли другие подходы?

Большое спасибо, Патрик


РЕДАКТИРОВАТЬ

Извините, что не яснее. Файлы будут загружены в папку через FTP, но функция javascript (SoundManager2) выбирает файлы mp3 для воспроизведения. Будут ли проблемы со скоростью при сканировании папки для нужного файла?

5 ответов5

2

Из личного опыта некоторые файловые системы будут останавливаться с 1k+ файлами в папке. Я помню NTFS, которая была одной из них около 3-3,5 лет назад на win2003/XP.

Предполагается, что Reiser fs предназначен для такого рода вещей, другие файловые системы UNIX могут также хорошо работать. В подтверждение этого я скажу, что в мире UNIX все является файлом, и на него полагаются тяжелые почтовые демоны, а также часто заполняют папки тысячами писем (qmail).

2

Есть несколько причин, по которым я бы предложил организовать их немного больше.

Во-первых - и это не может быть проблемой для вас - если вы получите доступ к этой папке через FTP, она будет очень медленной для просмотра. Упорядочив файлы в несколько папок, каждую папку будет легче просматривать.

Во-вторых, я столкнулся с проблемой в Windows, где было слишком много файлов в папке, и все это прекратилось - это было с 2000 файлами - извинения, поскольку я не могу вспомнить точные детали, окружающие эту проблему.

2

Можете ли вы отсортировать и сгруппировать ваши mp3 в темы? Если это так, то я бы поместил их в отдельные папки, все с именем корневой папки mp3, клипами или любым другим способом, который вам подходит.

Может быть, это только я, но иметь 1000-е в одной папке может быть сложно, плюс некоторым ФС это может не понравиться.

1

хороший совет относительно больших папок на томах NTFS:

Вот несколько советов от кого-то, где есть папки, содержащие десятки миллионов файлов.

  1. Папка хранит информацию индекса (ссылки на дочерние файлы и дочернюю папку) в файле индекса. Этот файл станет очень большим, когда у вас много детей. Обратите внимание, что он не различает дочерний элемент, являющийся папкой, и дочерний элемент, представляющий собой файл. Единственная разница на самом деле заключается в том, что содержимое этого дочернего элемента является либо индексом дочерней папки, либо данными дочернего файла. Примечание: я несколько упрощаю это, но это ясно.
  2. Индексный файл будет фрагментирован. Когда он станет слишком фрагментированным, вы не сможете добавлять файлы в эту папку. Это потому, что есть ограничение на количество фрагментов, которые разрешены. Это по замыслу. Я подтвердил это с Microsoft в звонке в службу поддержки. Таким образом, хотя теоретический предел составляет несколько миллиардов, удачи, когда вы начнете загружать десятки миллионов файлов.
  3. Однако не все так плохо. Вы можете использовать инструмент: contig.exe для дефрагментации этого индекса. Это не уменьшит размер индекса (который может достигать нескольких гигабайт для десятков миллионов файлов), но вы можете уменьшить количество фрагментов. Примечание. Инструмент дефрагментации диска НЕ будет дефрагментировать индекс папки. Это будет дефрагментировать данные файла. Только инструмент contig.exe будет дефрагментировать индекс. К вашему сведению: вы также можете использовать это для дефрагментации данных отдельного файла.
  4. Если вы выполняете дефрагментацию, не ждите, пока не достигнете максимального числа фрагментов. У меня есть папка, в которой я не могу дефрагментировать, потому что я ждал, пока не станет слишком поздно. Мой следующий тест - попытаться переместить некоторые файлы из этой папки в другую, чтобы посмотреть, смогу ли я выполнить их дефрагментацию. Если это не удастся, то мне нужно будет 1) создать новую папку. 2) переместить пакет файлов в новую папку. 3) дефрагментировать новую папку. повторите # 2 и # 3, пока это не будет сделано, а затем 4) удалите старую папку и переименуйте новую папку, чтобы она соответствовала старой.

Чтобы ответить на ваш вопрос более прямо: если вы просматриваете 100 000 записей, не беспокойтесь. Иди в себя. Если вы просматриваете десятки миллионов записей, то либо:

а) Планируйте разделить их на подпапки (например, допустим, у вас есть 100 миллионов файлов). Лучше хранить их в 1000 папках, чтобы у вас было только 100 000 файлов в папке, чем хранить их в 1 большой папке. Это создаст 1000 индексов папок вместо одного большого, который с большей вероятностью достигнет максимального числа фрагментов или

б) Планируйте запуск contig.exe на регулярной основе, чтобы сохранить индекс вашей большой папки дефрагментированным.

Источник

Contig является бесплатной.

Если вы не знакомы с командной строкой, вы можете использовать Power Defragmenter, графический интерфейс, написанный для Contig.

0

10000+ файлов не так уж много.

Каждая файловая система, которая не использовала связанный список для хранения данных, должна быть в порядке, например, даже ext3 с опцией dir_index. Inode и dentries файла 10000+ легко кэшируются в оперативной памяти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .