|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
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 но все равно не надо рубить на части счетчик, или если уж рубить - то справа, а не слева ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2018, 14:19 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
а вы минималку в генераторе поставьте на 1000000 и будет счастье ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2018, 14:45 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
Ariochtip78файлов с 1-2 в начале будет сильно больше (~5 раз), чем всех остальных content-addressed storage обычно на хэшах делается а хэши распределяются равномерно чё за хеши то? эти: 7fffffff ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2018, 14:46 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
Ariochоттуда же, откуда у tip78А подумать? Если ведущих нулей много, то файлов мало. Мало файлов размещаются в малом числе каталогов. P.S. Ещё раз повторю: задача балансировки ограничить количество объектов в отдельно взятом каталоге. Задачу построения "красивого" дерева каталогов не требуется решать вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2018, 16:24 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
tip78Ariochпропущено... Это в FAT/FAT32 где директории - простой несортированный массив В других системах это деревья http://spider.seds.org/spider/OS2/HPFS/dirs.html http://ext2.sourceforge.net/2005-ols/paper-html/node3.html да хоть кусты, суть не в названии, а в ресурсах. На линухе это всё так же прекрасно виснет и падает. Мои поллимона файлов (в трех папках) лежат на самбовой шаре на линухе. Ничего не виснет и не падает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2018, 16:54 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
tip78alekcvpпропущено... Тут выше уже приводили, на мой взгляд, удобное решение с хранением файлов по ID и разделение на папки по классам. нельзя их по ID хранить, потому что из-за ограничения на int, файлов с 1-2 в начале будет сильно больше (~5 раз), чем всех остальных А можно развернуть эту мысль поподробнее? А то не понял про ограничение и что такое 1-2 Кроме того вопрос кажется стоял не в равномерном распределении файлов по папкам а об ограничении максимального количества в одной папке. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2018, 16:56 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
akrush... Условия возьмем те же (чуть-чуть изменив): 75тыс. клиентов, 3 обращения по 5 сканов Просто я пока ума не приложу как лучше. Создавать по отдельной папке на клиента - 75тыс. папок. не будут ли операции с файлами подвисать при входе в эту папку... Ты хоть все файлы один каталог можешь свалить, без разницы (были ограничения на число корневых элементов тома, да и то кажись лишь для FAT*). Ну, и если ты "короткие" (8.3) имена использовать не станешь. Ничего "подвисать" не будет, да и нет такого понятия "при входе в эту папку". Да, всякие там эксплореры-проводники могут подписать, но ведь ты не собираешься ими пользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2018, 17:11 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
tip78ну вот пару мыслей на этот счёт: авторfacebook оптимизировали свой сервис после возросшей нагрузки: Кеширование более часто используемых миниатюр изображений в памяти на оригинальных серверах для масштабируемости, надежности и производительности Распределение их по CDN для уменьшения сетевых задержек Возможно сделать еще лучше: Хранение изображений в больших бинарных файлах (blob) Сервис, отвечающий за фотографии имеет информацию о том, в каком файле и с каким отступом от начала расположена каждая фотография (по ее идентификатору) Этот сервис в Facebook называется Haystack и он оказался в 10 раз эффективнее «простого» подхода и в 3 раза эффективнее «оптимизированного» у меня почему то отложилось, что они вообще отказались от файловой системы ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2018, 18:26 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
Как добиться консистентности данных в базе и в папке с файлами если их более 100 гб Начался бэкап в базе транзакция зафиксирована, а как с этим в файловой системе например (windows 2008r2, 2012, 2016) сколько займет времени копирование файлов без сторонних приблуд ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2018, 22:18 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
frakstip78пропущено... нельзя их по ID хранить, потому что из-за ограничения на int, файлов с 1-2 в начале будет сильно больше (~5 раз), чем всех остальных А можно развернуть эту мысль поподробнее? А то не понял про ограничение и что такое 1-2 Кроме того вопрос кажется стоял не в равномерном распределении файлов по папкам а об ограничении максимального количества в одной папке. равномерное распределение само-собой подразумевается иначе какой в этом всём смысл, если все файлы всё-равно окажутся в одной папке ограничение 2147483647 для рандома означает, что на цифры 1-2 приходятся миллиарды вариантов, а на все остальные - сотни миллионов т.е. помимо 1-999 миллионов у 1-2 есть ещё дополнительные 1-999 миллионов а у 3-9-0 - нет ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2018, 00:19 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
ну точнее у двойки меньше, там ещё ограничение опять же ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2018, 00:20 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
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. Ещё раз: задача не распределить файлы по папкам равномерно , задача - ограничить количество файлов в папках. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2018, 01:08 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
На самом деле я вообще туплю: D56BA781 бьётся на 3 уровня вложенности безо всяких извращений как D5(1)\6B(2)\A8(3)\81(файл) - всё. Мы можем хранить 4 с лишним миллиарда файлов, при этом не складывая более 256 штук в одну папку. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2018, 01:15 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
Что ж вы такие трудные-то ... Файлы: Код: plaintext 1. 2.
будут размещены как: Код: plaintext 1. 2.
В двухуровневой иерархии, при ограничении до тысячи объектов на каталог, можно разместить до миллиарда файлов (десятичное основание). При использовании шестнадцатиричной системы будет до 4096 объектов на каталог и более 65 миллиардов файлов во всё той же двухуровневой иерархии. Всё же тривиально (даже) в уме считается ... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2018, 01:23 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
Basil A. SidorovЧто ж вы такие трудные-то ... Спёр в блокнотик ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2018, 02:20 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
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.
будут размещены как: Код: plaintext 1. 2.
В двухуровневой иерархии, при ограничении до тысячи объектов на каталог, можно разместить до миллиарда файлов (десятичное основание). При использовании шестнадцатиричной системы будет до 4096 объектов на каталог и более 65 миллиардов файлов во всё той же двухуровневой иерархии. Всё же тривиально (даже) в уме считается ... я же про это писал уже тут tip78А вот если вы сложите свои файлы так: /in/di/vi/individual.php то у вас всё будет летать даже при миллионах файлов, ибо каждый слот даёт 26 букв + 10 цифр, итого 36 ** 6 = 2176782336 (кол-во дир, НЕ файлов! В каждой штук по 500 файлов себя вполне нормально чувствовать будут) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2018, 02:31 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
Чё-то нагородили премудростей... \inttostr(ID mod 1000)\inttostr(ID)+'.jpg' ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2018, 15:37 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
alekcvpШавлюк ЕвгенийЯ такую задачу не решал, но как подумаю о бекапе базы с большим количеством картинок... А как бэкап зависит от картинок? 2Гб база с картинками будет бэкапиться медленнее, чем 2Гб база с текстами? база с текстами определённо будет раз в 10-20 меньше jpg-картинки вообще не жмутся, например может от этого и скорость будет выше, не тестил ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2018, 19:26 |
|
Как лучше хранить данные в БД
|
|||
---|---|---|---|
#18+
tip78alekcvpпропущено... А как бэкап зависит от картинок? 2Гб база с картинками будет бэкапиться медленнее, чем 2Гб база с текстами? база с текстами определённо будет раз в 10-20 меньше jpg-картинки вообще не жмутся, например может от этого и скорость будет выше, не тестил В fb бэкапы уже сжимаются? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2018, 03:34 |
|
|
start [/forum/topic.php?fid=40&gotonew=1&tid=1561107]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
137ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 311ms |
total: | 567ms |
0 / 0 |