Отговори на тема  [ 12 мнения ] 
Въпрос за база данни. 
Автор Съобщение
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Окт 11, 2006 8:19 pm
Мнения: 373
Местоположение: София/Edinburgh, UK
Мнение Въпрос за база данни.
Здравейте, имам следното чудене. Пиша едно приложение, ще работи на сървър, получава картинка, намира разни обекти по нея и почва да сравнява с намерените обекти в други картинки. За сега като обработя картинка правя фаил, в които се помнят намерените обекти. Чудя се дали има смисъл отделните файлове да се заменят с една MySQL база дани, не знам как ще бъде като скорост четенето, как ще се държи въобще като цяло, досега не съм пускал база данни. Файловете ще станат някъде около 20000 броя и всеки от порядъка на 100к, тоест ако е една база данни ще стане мноогоо голяма, но пък 20000 файла, как ще се отрази на сървъра не знам, става въпрос за UNIX машина, а езика е С++. Ще съм много благодарен на всеки коментар и съвет.

_________________
Българският портал за РОБОТИКА


Вто Авг 03, 2010 5:18 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Пон Яну 09, 2006 11:32 am
Мнения: 276
Местоположение: Kozloduy
Мнение 
Май в случая БД ще е по-лошия вариянт, 20000 х 100к = 2ГБ, което в БД ще е още повече, може би двойно и ще е и по-бавно. Дръж в БД каквото искаш, само не и самите картинки.


Вто Авг 03, 2010 6:18 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен

Регистриран на: Сря Окт 03, 2007 3:39 pm
Мнения: 311
Мнение 
20000 файла в операционната система е по добре, от 20000 файла в един файл (щото това е mysql-a, той си държи таблиците във файлове) ...
само си направи структура, така че в една папка да нямаш повече от 1024 файла, иначе почват проблемите :-)

_________________
In God we trust. All others must submit an X.509 Certificate


Вто Авг 03, 2010 7:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
Категорично БД!

Не че не може да стане и с файлове, ама като има клещи циганина не си парел пръстите ;-)

Въпросът не е само физическото съхранение, индексиране и т.н. Читавото решение изисква и дублиране/бакъп/клъстъринг/load balancing и куп прочие глупости. Не ти трябва да откриваш топлата вода, просто казваш на местния админ "трябва ми сървър с толкова голяма БД, такава производителност/надеждност и т.н.". Админът да си решава колко машини да пуска, как да ги конфигурира и поддържа.

Също така е добре да не се хващаш да правиш и сървърната част. Дори и да няма HTML, сложи си един истински сървър а твоето С++ приложение го вържи през CGI или друг интерфейс.


Вто Авг 03, 2010 9:13 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение 
Цитат:
20000 файла в операционната система е по добре, от 20000 файла в един файл

Зависи от структурата на файла. Ако той е фрагментиран по подходящ начин (до колкото знам някои, ако не всички SQL сървъри го правят), то е много по добре от колкото 20к файла от по 100к в една или няколко папки.
8O
Цитат:
само си направи структура, така че в една папка да нямаш повече от 1024 файла, иначе почват проблемите Smile

Човека каза, че ще ползва *NIX система, а не виндоус :)

Относно въпроса - напълно подкрепям miro_atc

Потърси нещо по бързо от MySQL, ако приложениео ти ще се използва интензивно.


Сря Авг 04, 2010 1:39 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение 
Ако файловете няма да ги променяш, направи си един голям файл с всичките и подходящ индекс. После - mmap().


Сря Авг 04, 2010 4:39 am
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Сря Окт 03, 2007 3:39 pm
Мнения: 311
Мнение 
michev, точно за юникс система говоря :>
Половината от командите включително и дел не могат да обработят повече от 2048 записа в папка, гърмят със съответната грешка :> Листването на папка с повече от 1024 файла става красиво, мога да ти дам статистика като се докопам до бачкането за няколко версии на лайнукс, фрибсд, аикс и юниксуер, за съжаление едни образи взеха парите навремето по темата (разбирай някой горе си прибра комисионните за тази боза) и се налага да бачкам с така сглобената простотия :-)
Колкото база или не - зависи каква информация пазиш, ако пазиш картинки в базата - определено не можеш да ползваш никаква функционалност от нея, ползваш я само за сторидж без да може да прави каквато и да е обработка :>
П.С. Изключение от горното са някои от скъпите версии на Informix и DB2, те имат включени възможности за обработка на изображения, но силно се съмнявам в случая да са оправдани ценово :>

_________________
In God we trust. All others must submit an X.509 Certificate


Сря Авг 04, 2010 7:55 am
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Окт 11, 2006 8:19 pm
Мнения: 373
Местоположение: София/Edinburgh, UK
Мнение 
Няма да пазя картинката в базата данни, ами разните неща намерени в картинката.
Цитат:
дублиране/бакъп/клъстъринг/load balancing и куп прочие глупости.

С изброените неща горе, за да ми е мирна главата и да не откривам топлата вода, определено ще пусна една база данни, пък по изискване тя трябва да е MySQL. Мерси за отговорите.

_________________
Българският портал за РОБОТИКА


Сря Авг 04, 2010 10:05 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Юли 11, 2007 10:16 am
Мнения: 1730
Мнение 
goose, не съм съгласен.
Линукс потребител съм от доста време и не съм забелязвал тези проблеми за които говориш. За да не говоря напразно - направих малък тест:

генерираме си i на брой фала в /tmp/
Цитат:
#include <stdio.h>

int main ()
{
char buffer [L_tmpnam];
int i = 2048;
FILE *fp;

while (i) {
tmpnam (buffer);
fp = fopen(buffer, "w");
fclose(fp);
i--;
}


return 0;
}


Стартирам 2 пъти файла.
Код:
ls -l | grep -v ^l | wc -l
ми дава 4126 файла (все пак има и друг боклук там). Команда ls, минава за под 1 секунда!
Код:
rm file*
, също се изпълнява много бързо и резултата е 4096 изтрити файла.


Прикачени файлове:
temp.png
temp.png [ 165.31 KiB | Прегледано 2461 пъти ]
Сря Авг 04, 2010 1:27 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Яну 31, 2006 11:11 pm
Мнения: 295
Местоположение: София
Мнение 
Имаме доста натоварен WEB server на който има папка с над 4300 картинки. Няма проблем със скоростта при теглене на която и да е картинка. До скоро беше fedora а сега е centos


Сря Авг 04, 2010 2:09 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Окт 10, 2004 9:55 am
Мнения: 1718
Мнение 
bobyper написа:
Имаме доста натоварен WEB server на който има папка с над 4300 картинки. Няма проблем със скоростта при теглене на която и да е картинка. До скоро беше fedora а сега е centos

Бе някой хора сигурно се бъркат с бозавите Win проблеми :wink:

_________________
Избийте баламите и тарикатите сами ще умрат!
Няма невъзможни работи - има много трудни работи!
----------------------------------------------------------------------------------
"Я в Москве с киркой уран найду, при такой повышенной зарплате" !


Сря Авг 04, 2010 4:47 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Сря Окт 03, 2007 3:39 pm
Мнения: 311
Мнение 
Мдам, изказах се леко прибързано ... днес погледнах как стоят нещата, цент-а се справя прилично, ядове имам под Aix и едно дърто bsd 4.7 (по исторически причини няма начин да бъде ъпдейтнато), на unixware лимита му е 4096, но над 1000 почва да бави жестоко ...

Така че линукса го реабилитирам от моето изказване, и си посипвам главата с пепел за него :>

_________________
In God we trust. All others must submit an X.509 Certificate


Сря Авг 04, 2010 4:55 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 12 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: Google [Bot] и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни