За последние 24 часа нас посетили 15987 программистов и 1736 роботов. Сейчас ищут 1743 программиста ...

Максимальное количество папок в папке

Тема в разделе "Решения, алгоритмы", создана пользователем ng0d, 13 мар 2012.

  1. ng0d

    ng0d Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    100
    Симпатии:
    0
    Адрес:
    Латвия
    Пользователь при загрузке своего фото, создаёт папку с названием своего ID, данная папка создаётся в папке uploads. Так как проект планируется быть популярным, задался вопросом, а ведь если будет более 100 тысяч пользователей с фото, это ведь 100 тысяч папок в папке uploads. Какое ограничение вложенных папок в папке на системе linux?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    так не делается вобще =)
     
  3. ng0d

    ng0d Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    100
    Симпатии:
    0
    Адрес:
    Латвия
    Я знаю как это переделать уже, но стоит ли, если пользователей не будет превышать 1-2 миллиона? Читал что один программёр создавал скриптом пол миллиона файлов в папке, при этом доступ к ним был довольно быстрый, это вообще реально?
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    зависит от файловой системы. но все равно рекомендуется не перегибать палку. добавь одно поле с папокой в два символа.
    работает достаточно быстро
    substr('00' . base_convert(rand(0, 1295), 10, 36), -2);
    выдает 00-zz
     
  5. ng0d

    ng0d Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    100
    Симпатии:
    0
    Адрес:
    Латвия
    А как это понимать, Битрикс делают не профессионалы? :)

     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    =) да

    хз сколько там было посещений
     
  7. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    [offtop]Я когда в универе учился, любил ставить "эксперименты" с папками и файлами. Открывается любая папочка, в ней создается файлик, а дальше, не отпуская кнопочки crtl, жмем по очереди a, c, v, пока комп не подвиснет. Очень забавно было. А еще соседу по парте, когда он отвлечется, можно было зажать на клавиатуре win+f1. Тоже весело получалось[/offtop]
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    было дело =)
     
  9. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Более чем 1000-1500 файлов/каталогов в текущем каталоге - это плохо. Нужно дробить на подкаталоги по начальной букве названия каталога (а-яa-z), по дате, по ID и пр.
     
  10. ng0d

    ng0d Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    100
    Симпатии:
    0
    Адрес:
    Латвия
    Я уже переделал структуру. Ссылка выглядит теперь вот так http://мой_сайт/intval(ид_юзера / 1000)/ид_юзера/фото.jpg
     
  11. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    А зачем ид_юзера дублировать?
     
  12. ng0d

    ng0d Активный пользователь

    С нами с:
    7 фев 2009
    Сообщения:
    100
    Симпатии:
    0
    Адрес:
    Латвия
    Дублирования нет. intval(ид_юзера / 1000) при ид юзера меньше 1000, будет 0, а папка с 0 содержит 1000 папок пользователей, как только юзер имеет ид больше чем 1000, intval(ид_юзера / 1000) будет 1, а в этой папке так-же будут 1000 пользователей, но другие и т.д. Таким методом можно спокойно работать с миллионом пользователей.
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    база данных - наш друг. =)
     
  14. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Прямой доступ к файлам быстрее =) (в контексте темы)
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не, я не предлагаю фигачить файло в базу.
     
  16. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    общее кол-во каталогов/файлов/ссылок - зависит от размера файловой системы. например, у меня на 183гб разделе ext4 12.2млн нодов можно сделать.
    а для каталога - беглый гугл дал лимит 32к нодов для ext3 без патча ядра (википедия)
     
  17. MaXyC_Web_Studio

    MaXyC_Web_Studio Активный пользователь

    С нами с:
    31 дек 2006
    Сообщения:
    678
    Симпатии:
    3
    Адрес:
    Новоуральск
    /uploads/0/1/2/3/4/01234.jpg
     
  18. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Не нажимается.
     
  19. пых-пых

    пых-пых Активный пользователь

    С нами с:
    26 июл 2012
    Сообщения:
    7
    Симпатии:
    0
    в описании файловой системы всегда указывается какое количество и размеры файлов они поддерживают
    дробите по нодам, по годам, месяцам и т.д.

    тормозить не будет ни 1 тыс, ни 10 тыс, ни 100тыс если не запрашивать листинг директории, при прямом обращении к папке юзера проблем не будет если сам юзер не загрузит 100тыс файлов
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    да, но люди по факту - жалуются.