У меня есть эта папка, она называется «Х».
В настоящее время в нем 40 тыс. Папок и 70 тыс. Файлов.
Я немного волнуюсь, внутри изображения. Есть ли ограничение, которое может хранить папка «X»?
Эта папка важна, в ней хранятся изображения моих текущих пользователей. Пожалуйста, порекомендуйте?
Или хранить в базе данных (BLOB)? Я использую mysql.
Пожалуйста, порекомендуйте.
РЕДАКТИРОВАТЬ:
Я использую Windows Server 2003. IIS 6
Это все очень хорошо, так как теоретические ограничения NTFS публикуются, как это делали некоторые другие плакаты, однако вы обнаружите, что на самом деле, если вы поместите 100 КБ файлов в папку, производительность при доступе к этим файлам значительно упадет. Это касается не только NTFS, но и всех популярных файловых систем Linux.
Самый простой способ - разделить их на подпапки, не более 10-20 тысяч каждая. Если ваше именование относительно равномерно распределено, вы можете сделать это по нескольким первым символам имени файла, чтобы было проще. Вы хотите создать эти папки за один раз, а не на лету, чтобы корневая папка не была фрагментирована.
Также существует проблема потраченного впустую места в блоках, если ваши файлы маленькие и не соответствуют размеру блока. В этом случае вы можете захотеть объединить файлы, чтобы они соответствовали этому.
Файловая система Ext имеет как минимум проблемы с производительностью, если у вас слишком много файлов в одной папке. Точно не знаю, но думаю, что с NTFS возникнут те же проблемы. Кажется хорошей идеей ограничить количество файлов в папке чем-то разумным за счет более глубокого дерева папок.
«Что-то разумное» должно быть проверено и измерено в вашей среде. Я бы поставил меньше 10К, но это всего лишь намек ...
Насколько мне известно, нет максимального ограничения на количество файлов в папке, однако NTFS имеет ограничение в 4 294 967 295 файлов на томе.
Если вы используете Windows 2003, то, предположительно, ваши диски отформатированы в NTFS?
Посмотреть здесь и здесь (прокрутите вниз до «Ограничения размера NTFS») для других соответствующих ограничений NTFS.
Но это одна из тех ситуаций, когда если вы приближаетесь к пределу, то почти наверняка делаете что-то не так.
Эти числа велики, но не близки к пределам для файловой системы NTFS. Таким образом, хотя вы не получите ошибок, вы, скорее всего, столкнетесь с проблемами производительности, например, при получении списков каталогов.
Как правило, файлы размером 6-10 тыс. В каталоге начинают замедляться из-за потребления памяти. Если размер файлов превышает 300 КБ, создание файлов также замедлится из-за проблем с поиском уникальных имен при «генерации коротких имен файлов».
Хранение файлов в двоичном объекте MySQL возможно, но, на мой взгляд, это медленно и значительно увеличивает вашу базу данных. Я бы предложил создать более глубокую структуру каталогов и перенести в нее вашу текущую структуру.