powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как лучше хранить данные в БД
20 сообщений из 70, страница 3 из 3
Как лучше хранить данные в БД
    #39633785
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78эта тема с каталогами не для файлов 1.txt, а 127627334.txt

вот как раз в случае 127627334.txt перед ним будут 99627334.txt и 98627334.txt и 97627334.txt
а до того будут 9927334.txt , 9827334.txt , 9727334.txt
а до того будут 997334.txt , 987334.txt , 977334.txt

но все равно не надо рубить на части счетчик, или если уж рубить - то справа, а не слева
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39633798
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вы минималку в генераторе поставьте на 1000000 и будет счастье
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39633799
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochtip78файлов с 1-2 в начале будет сильно больше (~5 раз), чем всех остальных

content-addressed storage обычно на хэшах делается

а хэши распределяются равномерно
чё за хеши то?
эти: 7fffffff ?
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39633846
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochоттуда же, откуда у tip78А подумать?
Если ведущих нулей много, то файлов мало.
Мало файлов размещаются в малом числе каталогов.

P.S. Ещё раз повторю: задача балансировки ограничить количество объектов в отдельно взятом каталоге.
Задачу построения "красивого" дерева каталогов не требуется решать вообще.
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39633881
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78Ariochпропущено...


Это в FAT/FAT32 где директории - простой несортированный массив

В других системах это деревья

http://spider.seds.org/spider/OS2/HPFS/dirs.html
http://ext2.sourceforge.net/2005-ols/paper-html/node3.html
да хоть кусты, суть не в названии, а в ресурсах. На линухе это всё так же прекрасно виснет и падает.

Мои поллимона файлов (в трех папках) лежат на самбовой шаре на линухе.
Ничего не виснет и не падает.
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39633884
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78alekcvpпропущено...
Тут выше уже приводили, на мой взгляд, удобное решение с хранением файлов по ID и разделение на папки по классам.

нельзя их по ID хранить, потому что из-за ограничения на int, файлов с 1-2 в начале будет сильно больше (~5 раз), чем всех остальных

А можно развернуть эту мысль поподробнее? А то не понял про ограничение и что такое 1-2
Кроме того вопрос кажется стоял не в равномерном распределении файлов по папкам а об ограничении максимального количества в одной папке.
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39633899
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
akrush...
Условия возьмем те же (чуть-чуть изменив): 75тыс. клиентов, 3 обращения по 5 сканов
Просто я пока ума не приложу как лучше. Создавать по отдельной папке на клиента - 75тыс. папок. не будут ли операции с файлами подвисать при входе в эту папку...
Ты хоть все файлы один каталог можешь свалить, без разницы (были ограничения на число корневых элементов тома, да и то кажись лишь для FAT*). Ну, и если ты "короткие" (8.3) имена использовать не станешь.
Ничего "подвисать" не будет, да и нет такого понятия "при входе в эту папку". Да, всякие там эксплореры-проводники могут подписать, но ведь ты не собираешься ими пользоваться.
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39633932
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78ну вот пару мыслей на этот счёт:
авторfacebook оптимизировали свой сервис после возросшей нагрузки:

Кеширование более часто используемых миниатюр изображений в памяти на оригинальных серверах для масштабируемости, надежности и производительности
Распределение их по CDN для уменьшения сетевых задержек
Возможно сделать еще лучше:
Хранение изображений в больших бинарных файлах (blob)
Сервис, отвечающий за фотографии имеет информацию о том, в каком файле и с каким отступом от начала расположена каждая фотография (по ее идентификатору)
Этот сервис в Facebook называется Haystack и он оказался в 10 раз эффективнее «простого» подхода и в 3 раза эффективнее «оптимизированного»

у меня почему то отложилось, что они вообще отказались от файловой системы
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39634005
Rinium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как добиться консистентности данных в базе и в папке с файлами если их более 100 гб
Начался бэкап в базе транзакция зафиксирована, а как с этим в файловой системе например (windows 2008r2, 2012, 2016)
сколько займет времени копирование файлов без сторонних приблуд
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39634028
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frakstip78пропущено...

нельзя их по ID хранить, потому что из-за ограничения на int, файлов с 1-2 в начале будет сильно больше (~5 раз), чем всех остальных

А можно развернуть эту мысль поподробнее? А то не понял про ограничение и что такое 1-2
Кроме того вопрос кажется стоял не в равномерном распределении файлов по папкам а об ограничении максимального количества в одной папке.
равномерное распределение само-собой подразумевается иначе какой в этом всём смысл, если все файлы всё-равно окажутся в одной папке

ограничение 2147483647 для рандома означает, что на цифры 1-2 приходятся миллиарды вариантов, а на все остальные - сотни миллионов
т.е. помимо 1-999 миллионов у 1-2 есть ещё дополнительные 1-999 миллионов
а у 3-9-0 - нет
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39634029
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну точнее у двойки меньше, там ещё ограничение опять же
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39634040
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78,

В UInt32 помещается FFFFFFFF значений. Бьём по папкам: '0', '1', '2', '3', внутри каждой из этих папок еще два уровня вложенности от '000' до '3FF', а в последнем - файлы с именами так же от '000' до '3FF'. В итоге мы запихиваем 4 лярда файлов в папки 3х уровней вложенности, с максимум 1024 элементов в одной папке. При этом по ID файла сразу вычисляется путь. Если взять 4 уровня вложенности, то там вообще будет максимум 256 элементов и элементарное вычисление пути.

Пример: для файла с ID 28C5E1A3 путь будет 0\28C\178\1A3, а для D56BA781 - 3\156\2E9\381.

Ещё раз: задача не распределить файлы по папкам равномерно , задача - ограничить количество файлов в папках.
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39634041
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле я вообще туплю: D56BA781 бьётся на 3 уровня вложенности безо всяких извращений как D5(1)\6B(2)\A8(3)\81(файл) - всё. Мы можем хранить 4 с лишним миллиарда файлов, при этом не складывая более 256 штук в одну папку.
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39634042
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что ж вы такие трудные-то ...

Файлы:
Код: plaintext
1.
2.
  000000 000
  000001 000
  001000 000

будут размещены как:
Код: plaintext
1.
2.
 basedir/ 000 / 000 /000000000
 basedir/ 000 / 001 /000001000
 basedir/ 001 / 000 /001000000

В двухуровневой иерархии, при ограничении до тысячи объектов на каталог, можно разместить до миллиарда файлов (десятичное основание).

При использовании шестнадцатиричной системы будет до 4096 объектов на каталог и более 65 миллиардов файлов во всё той же двухуровневой иерархии.

Всё же тривиально (даже) в уме считается ...
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39634046
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЧто ж вы такие трудные-то ...

Спёр в блокнотик
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39634048
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvptip78,

В UInt32 помещается FFFFFFFF значений. Бьём по папкам: '0', '1', '2', '3', внутри каждой из этих папок еще два уровня вложенности от '000' до '3FF', а в последнем - файлы с именами так же от '000' до '3FF'. В итоге мы запихиваем 4 лярда файлов в папки 3х уровней вложенности, с максимум 1024 элементов в одной папке. При этом по ID файла сразу вычисляется путь. Если взять 4 уровня вложенности, то там вообще будет максимум 256 элементов и элементарное вычисление пути.

Пример: для файла с ID 28C5E1A3 путь будет 0\28C\178\1A3, а для D56BA781 - 3\156\2E9\381.

Ещё раз: задача не распределить файлы по папкам равномерно , задача - ограничить количество файлов в папках.
где бы взять uint, в postgres вот нет 'u' (

Basil A. SidorovЧто ж вы такие трудные-то ...

Файлы:
Код: plaintext
1.
2.
  000000 000
  000001 000
  001000 000

будут размещены как:
Код: plaintext
1.
2.
 basedir/ 000 / 000 /000000000
 basedir/ 000 / 001 /000001000
 basedir/ 001 / 000 /001000000

В двухуровневой иерархии, при ограничении до тысячи объектов на каталог, можно разместить до миллиарда файлов (десятичное основание).

При использовании шестнадцатиричной системы будет до 4096 объектов на каталог и более 65 миллиардов файлов во всё той же двухуровневой иерархии.

Всё же тривиально (даже) в уме считается ...

я же про это писал уже тут
tip78А вот если вы сложите свои файлы так: /in/di/vi/individual.php
то у вас всё будет летать даже при миллионах файлов, ибо каждый слот даёт 26 букв + 10 цифр, итого 36 ** 6 = 2176782336 (кол-во дир, НЕ файлов! В каждой штук по 500 файлов себя вполне нормально чувствовать будут)
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39645606
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чё-то нагородили премудростей... \inttostr(ID mod 1000)\inttostr(ID)+'.jpg'
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39645751
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpШавлюк ЕвгенийЯ такую задачу не решал, но как подумаю о бекапе базы с большим количеством картинок...
А как бэкап зависит от картинок? 2Гб база с картинками будет бэкапиться медленнее, чем 2Гб база с текстами?
база с текстами определённо будет раз в 10-20 меньше
jpg-картинки вообще не жмутся, например
может от этого и скорость будет выше, не тестил
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39645827
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78alekcvpпропущено...

А как бэкап зависит от картинок? 2Гб база с картинками будет бэкапиться медленнее, чем 2Гб база с текстами?
база с текстами определённо будет раз в 10-20 меньше
jpg-картинки вообще не жмутся, например
может от этого и скорость будет выше, не тестил
В fb бэкапы уже сжимаются?
...
Рейтинг: 0 / 0
Как лучше хранить данные в БД
    #39645836
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КотовасияВ fb бэкапы уже сжимаются?

А что может помешать сжать бэкап любым архиватором?
...
Рейтинг: 0 / 0
20 сообщений из 70, страница 3 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как лучше хранить данные в БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]