хранить файлы в SQL server

shadow7256
Уже с Приветом
Posts: 10604
Joined: 18 Mar 2004 15:11
Location: New York -> FL

хранить файлы в SQL server

Post by shadow7256 »

Уважаемые.

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

Может имеет смысл хранить файлы в базе данных (SLQ SERVER) ? Вроде там BLOB можно хранить..

Спасибо
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: хранить файлы в SQL server

Post by Dmitry67 »

Можно. В свое время у MS даже был проект чтобы сделать на MS SQL файловую систему
Но получилось медленно (для общего случая).
В частном случае может и пройти. Каков avg размер файла? Что там? (компрессия? компрессия с вынесенным словарем если файлы похожи?)
Но все же мне кажется легче сделать тупой hash по папкам

\A0001110\B9339\D94944\porngirl.jpg
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
shadow7256
Уже с Приветом
Posts: 10604
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: хранить файлы в SQL server

Post by shadow7256 »

Dmitry67 wrote: 19 Apr 2017 16:03 Можно. В свое время у MS даже был проект чтобы сделать на MS SQL файловую систему
Но получилось медленно (для общего случая).
В частном случае может и пройти. Каков avg размер файла? Что там? (компрессия? компрессия с вынесенным словарем если файлы похожи?)
Но все же мне кажется легче сделать тупой hash по папкам

\A0001110\B9339\D94944\porngirl.jpg
Дима.. размер файлов примерно 11 мегабайт каждый :( Я вот тоже думал про отдельные папки.. типа каждый день пусть создаются разные папки и файлы на этот день хранятся там.

А почему хранить файлы в базе не есть очень хорошая идея?
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: хранить файлы в SQL server

Post by Dmitry67 »

Вы получите очень неповоротливую базу, очень большую по размеру --> проблемы с бэкапом
Вторая проблема - допустим вам надо удалить 1000000 файлов. Так как скорее всего у вас Full recovery, то контент всех удаленных файлов пойдет писаться в лог...
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: хранить файлы в SQL server

Post by Dmitry67 »

Lazy444 wrote: 19 Apr 2017 16:48 Я бы задал вопрос: А нафига столько файлов хранить ? Обработали файл, вытащили из него все что нужно, и удалить нафиг.
Судя по размеру - мультимедия, MP3 в хорошем качестве на 5 мин
А ну ка, доложите сюда, что у вас за бизнес идея? )))
:food:
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
shadow7256
Уже с Приветом
Posts: 10604
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: хранить файлы в SQL server

Post by shadow7256 »

Lazy444 wrote: 19 Apr 2017 16:48 Я бы задал вопрос: А нафига столько файлов хранить ? Обработали файл, вытащили из него все что нужно, и удалить нафиг.
Низзя. Это правительство. У них все должно хранится на диске в течение 10ти лет.
shadow7256
Уже с Приветом
Posts: 10604
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: хранить файлы в SQL server

Post by shadow7256 »

Dmitry67 wrote: 19 Apr 2017 16:50
Lazy444 wrote: 19 Apr 2017 16:48 Я бы задал вопрос: А нафига столько файлов хранить ? Обработали файл, вытащили из него все что нужно, и удалить нафиг.
Судя по размеру - мультимедия, MP3 в хорошем качестве на 5 мин
А ну ка, доложите сюда, что у вас за бизнес идея? )))
:food:
это не моя бизнес идея :) Эти файлы содержат персональную информацию людей :) Включая отпечатки пальцев и другую инфу
mskmel
Уже с Приветом
Posts: 947
Joined: 24 Sep 2013 05:58
Location: US\GA

Re: хранить файлы в SQL server

Post by mskmel »

shadow7256 wrote: 19 Apr 2017 15:55 такая проблемка.. наша программа работает с файлами, сохраняет их на диске и путь к файлам хранит в базе данных. Дело в том, что этих файлов очень много.. десятки тысяч..и будет еще больше.. миллионы. Windows не очень любит когда столько файлов в одной папке хранится.
У вас 10миллион * 11MB ~= 100GB , что есть совсем чуть-чуть. 1млн файликов есть на моём десктопе :) Не переживайте за Виндовс, пока нет проблем, ежедневно по новой папочке ГОД\МЕСЯЦ\ДЕНЬ и жить можно долго и счастливо.

Ещё вот это посмотрите: https://msdn.microsoft.com/en-us/library/bb862195.aspx
User avatar
Dmitry67
Уже с Приветом
Posts: 28283
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: хранить файлы в SQL server

Post by Dmitry67 »

mskmel wrote: 19 Apr 2017 19:58
shadow7256 wrote: 19 Apr 2017 15:55 такая проблемка.. наша программа работает с файлами, сохраняет их на диске и путь к файлам хранит в базе данных. Дело в том, что этих файлов очень много.. десятки тысяч..и будет еще больше.. миллионы. Windows не очень любит когда столько файлов в одной папке хранится.
У вас 10миллион * 11MB ~= 100GB , что есть совсем чуть-чуть. 1млн файликов есть на моём десктопе :) Не переживайте за Виндовс, пока нет проблем, ежедневно по новой папочке ГОД\МЕСЯЦ\ДЕНЬ и жить можно долго и счастливо.

Ещё вот это посмотрите: https://msdn.microsoft.com/en-us/library/bb862195.aspx
Что-то у вас с арифметикой
Терабайт, а не гигабайт
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
mskmel
Уже с Приветом
Posts: 947
Joined: 24 Sep 2013 05:58
Location: US\GA

Re: хранить файлы в SQL server

Post by mskmel »

Dmitry67 wrote: 19 Apr 2017 20:02 Что-то у вас с арифметикой
Терабайт, а не гигабайт
Согласен, надо было гуглом считать: 10E6 * 10MB = 100 terabytes :oops:
100TB блобов думаю что Oracle, что MS SQL поплохеет.

Тогда снести всё на NAS, на прошлом проекте как раз под медиафайлики, десятки миллионов, но размером поменьше, стоял https://www.emc.com/en-us/storage/isilon/index.htm
Метаданные были в сильно кастюмизированном Alfresco , потом переписали на своё.
shadow7256
Уже с Приветом
Posts: 10604
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: хранить файлы в SQL server

Post by shadow7256 »

mskmel wrote: 19 Apr 2017 19:58 Не переживайте за Виндовс, пока нет проблем, ежедневно по новой папочке ГОД\МЕСЯЦ\ДЕНЬ и жить можно долго и счастливо.
Да, так и решил делать :) Создавать папочки по дням и там сохранять файлы.
zVlad
Уже с Приветом
Posts: 16208
Joined: 30 Apr 2003 16:43

Re: хранить файлы в SQL server

Post by zVlad »

передумал.

Return to “Вопросы и новости IT”