База vs Файлы

123 4
frantic
На сайте с 09.02.2009
Offline
27
2134

Всем привет!

Вот есть 60 тысяч фоток ( ну еще будет 60 тысяч фоток поменьше и 60 тыщ превьюшек, т.е. всего 180 тысяч ). Все они вместе весят гигабайт 12. Вопрос как будет быстрее работать, если запихать все это дело в базу или оставить в файлах. Просто ограничения хостинга на кол-во файлов мешает. Сильно тормозить будет если с базой?

[Удален]
#1
frantic:
Вопрос как будет быстрее работать, если запихать все это дело в базу или оставить в файлах

суровая идея .... дамп особенно классно будет делать при случае, если случай возникнет, позовите меня, я люблю на страдания с попкорном наблюдать.

bearman добавил 01.04.2010 в 23:13

если файлы связаны между собой, я бы тогда (если уж сильно надо), то 3 фотки в один файл записал, и дергал через fread нужную картинку, ну это конечно жопа :)

проще хостинг сменить, 12гб в наше время - смех :)

frantic
На сайте с 09.02.2009
Offline
27
#2
bearman:

проще хостинг сменить, 12гб в наше время - смех :)

Да место как они заявляют неограничено. Но есть ограничения на кол-во файлов ( 300 тысяч ). Я б с удовольствием конечно файлы оставил)

frantic добавил 01.04.2010 в 23:19

bearman:
дамп особенно классно будет делать при случае, если случай возникнет, позовите меня, я люблю на страдания с попкорном наблюдать.

Ну да дамп будет клево делать 🤪 Но больше интересно как это все будет пахать при хотя бы слабой нагрузке

malls
На сайте с 08.08.2005
Offline
255
#3

Не однозначно база! Все пихать в базу! Только туда! От дампов отказаться - нафиг такая роскошь. И все в базу! Работать будет ... в общем сами увидите как будет работать!

Базу лучше брать MS Access - устанавливать ее на линуксовый сервак через какой-нибудь виндовый гейт (типа вайна). И конечно архивировать на каждом этапе, чтобы потом разархивацию делать картинок.

Картинки конечно лучше заведомо в tiff формате хранить в CMYK на 1200 dpi - потом перед выдачей, скриптом пышным в jpeg переводить.

ну даже не знаю что еще присоветовать...

[Удален]
#4

Была похожая ситуация, лучше базу не делать =) добрый вам совет.

rtyug
На сайте с 13.05.2009
Offline
263
#5

на сколько я знаю, то максимальное ограничение файлов (и каталогов) в одном каталоге за которой ОС будет притормажить составляет около 2 млн файлов (точно не помню)... (а в вашем лучае только 60 тыщ)

можно взять сервер, и поставить распределенную файловую систему... MogileFS (http://www.google.com.ua/#hl=uk&q=mogilefs+freebsd&meta=&aq=0&aqi=g1&aql=&oq=MogileFS+f&gs_rfai=&fp=a1e4a221592c4a20)

в Oracle и MsSQL можно даже видео клипы смотреть из базы :D

есть втроенные типы STREAM

в MySQL почему-то не включили такой тип, хотя в PgSQL вроде бы есть минимальная возможонсть такая с функцией seek из BLOB

(но я не пробовал)

Example: Streaming character data from the database

In this example, we demonstrate a technique for streaming data from the database to a file handle, in this case STDOUT. This allows more data to be read in and written out than could be stored in memory at a given time.

my $lob_id = 17; # Arbitrary row identifier, for example

$sth = $dbh->prepare( <<" SQL", { ora_auto_lob => 0 } );
SELECT chardata
FROM lob_example
WHERE lob_id = ?
SQL
$sth->execute( $lob_id );
my ( $char_locator ) = $sth->fetchrow_array();

my $chunk_size = 1034; # Arbitrary chunk size, for example
my $offset = 1; # Offsets start at 1, not 0
while(1) {
my $data = $dbh->ora_lob_read( $char_locator, $offset, $chunk_size );
last unless length $data;
print STDOUT $data;
$offset += $chunk_size;
}

Notice that the select statement does not contain the phrase "FOR UPDATE". Because we are only reading from the LOB Locator returned, and not modifying the LOB it refers to, the select statement does not require the "FOR UPDATE" clause.

A word of catution when using the data retruned from an ora_lob_read in a condtional statement. for example if the code below;

while( my $data = $dbh->ora_lob_read( $char_locator, $offset, $chunk_size ) ) {
print STDOUT $data;
$offset += $chunk_size;
}

was used with a chunk size of 4096 against a blob that requires more than 1 chunk to return the data and the last chunk is one byte long and contains a zero (ASCII 48) you will miss this last byte as $data will contain 0 which PERL will see as false and not print it out.

http://search.cpan.org/~pythian/DBD-Oracle-1.23/Oracle.pm#Example:_Streaming_character_data_from_the_database

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
frantic
На сайте с 09.02.2009
Offline
27
#6
rtyug:

можно взять сервер, и поставить распределенную файловую систему...

Да пока нет необходимости серв покупать, может потом, сейчас не потяну. Хотелось бы на шэреде попробовать сначала. А СУБД постгре, там есть формат типа blob из мускула, точне не помню название.

Не про потоки я что то не понимаю :)

frantic добавил 01.04.2010 в 23:46

malls:

Картинки конечно лучше заведомо в tiff формате хранить в CMYK на 1200 dpi - потом перед выдачей, скриптом пышным в jpeg переводить.

Тоесть сначала все это в тифф переконвертить, а потом в базу? А в чем будет выгода?

_savit
На сайте с 19.03.2006
Offline
135
#7

однозначно оставлять все в файлах ... если на хостинге ограничение на кол-во файлов, то менять хостинг

https://vk-botovod.ru - комбайн ВКонтакте, мультимессенджер, эмулятор жизни аккаунтов
[Удален]
#8
frantic:
А в чем будет выгода?

в юморе :)

юмор победит

[Удален]
#9
malls:
Картинки конечно лучше заведомо в tiff формате хранить в CMYK на 1200 dpi - потом перед выдачей, скриптом пышным в jpeg переводить.

Давно так не смеялся ))

frantic
На сайте с 09.02.2009
Offline
27
#10
_savit:
однозначно оставлять все в файлах ... если на хостинге ограничение на кол-во файлов, то менять хостинг

Ну если припрет в итоге то конечно поменяю. Только на какой? У меня щас вот это чудо http://www3.ixwebhosting.com/index.php/v2/pages.hostingPlans . Есть аналоги ему?

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий