Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Хранение картинок, MySQL
zloi
Вставить ник
сообщение 7:01:2008, 12:01
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 23
Регистрация: 23:10:2006
Из: Молодечно
Пользователь №: 7 314
Специализация: web-developer



Репутация: - 0 +


Народ, ай нид хелп.
Как в таблицу добавить картинку там или просто какой-нить файл, а потом нормально оттуда выдрать? А то очень нада, чтоб все одним куском лежало.
Подняться вверх 
 
Сообщение #1
 
Новая тема 
Ответов (1 - 27)
diff
Вставить ник
сообщение 8:01:2008, 23:32
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 16
Регистрация: 6:01:2008
Пользователь №: 14 623
Специализация: web-programming



Репутация: - 0 +


dlya dobavleniya kartinki v bazu dannyh, nujno snachala ee prochitat', zatem vstavit' dannye v pole s tipom binary.
No etogo delat' ne sleduet, potomushto tem samym vy budete sil'nee nagrujat' mysql - poyavyatsya lishnie zaprosy, luche hranite kartinku v special'noi papke, a v tablice ih url i local'ny adress.
Подняться вверх 
 
Сообщение #2
sax_ol
Вставить ник
сообщение 9:01:2008, 07:42
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Цитата(diff @ 9:01:2008, 01:32 )
potomushto tem samym vy budete sil'nee nagrujat' mysql

Где такое написано?
Подняться вверх 
 
Сообщение #3
diff
Вставить ник
сообщение 9:01:2008, 08:00
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 16
Регистрация: 6:01:2008
Пользователь №: 14 623
Специализация: web-programming



Репутация: - 0 +


Цитата(sax_ol @ 9:01:2008, 09:42 ) *
Где такое написано?

vy budete sil'nee nagrujat' mysql - poyavyatsya lishnie zaprosy
ps
ne vse napisanno v knigah, ochen' mnogoe uznaesh' vo vremya raboty(na praktike)

Сообщение отредактировал diff - 9:01:2008, 08:01
Подняться вверх 
 
Сообщение #4
sax_ol
Вставить ник
сообщение 9:01:2008, 11:26
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Цитата(diff @ 9:01:2008, 10:00 )
poyavyatsya lishnie zaprosy

Да с какого перепуга?
Цитата(diff @ 9:01:2008, 10:00 )
ne vse napisanno v knigah, ochen' mnogoe uznaesh' vo vremya raboty(na praktike)

Практика показывает совсем иное.
Подняться вверх 
 
Сообщение #5
zloi
Вставить ник
сообщение 9:01:2008, 12:25
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 23
Регистрация: 23:10:2006
Из: Молодечно
Пользователь №: 7 314
Специализация: web-developer



Репутация: - 0 +


to sax_ol
а можно немного поподробнее и поконкретнее?
а то я второй раз справочник Викрама Васвани перечитал и ничего не нашел
Подняться вверх 
 
Сообщение #6
sax_ol
Вставить ник
сообщение 9:01:2008, 12:38
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Для: zloi
PHP или как?
Подняться вверх 
 
Сообщение #7
diff
Вставить ник
сообщение 9:01:2008, 14:00
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 16
Регистрация: 6:01:2008
Пользователь №: 14 623
Специализация: web-programming



Репутация: - 0 +


Цитата(sax_ol @ 9:01:2008, 13:26 ) *
Да с какого перепуга?

Практика показывает совсем иное.


a vy podumaite golovoi, prejde chem floodit', otkuda berutsya zaprosy i pochemu mogut poyavitsya lishnie.
Подняться вверх 
 
Сообщение #8
sax_ol
Вставить ник
сообщение 9:01:2008, 14:06
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Для: diff
Ну вот как раз, наоборот, вы высказав мысль, ничем ее не подтвердили, ни Словом ни Делом.
За сим делаю вывод, что флудер именно вы.
Подняться вверх 
 
Сообщение #9
European
Вставить ник
сообщение 9:01:2008, 14:14
Цитата Ответить 


Божественный
*****

Группа: Модеры
Сообщений: 1 816
Регистрация: 4:09:2006
Из: Минск
Пользователь №: 6 316
Специализация: C++



Репутация: - 31 +


Для: diff
Если Вы хранитель Высших знаний, то поделитесь ими с народом и не нада хорохорится. Конкретно ответьте на вопрос: что такое лишние запросы и откуда они берутся?
Подняться вверх 
 
Сообщение #10
zloi
Вставить ник
сообщение 9:01:2008, 17:54
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 23
Регистрация: 23:10:2006
Из: Молодечно
Пользователь №: 7 314
Специализация: web-developer



Репутация: - 0 +


to sax_ol
и PHP в том числе, но не только, так, для общего развития тоже.
если Вы хотите дать пример, то можно на PHP, разберусь blink.gif
Подняться вверх 
 
Сообщение #11
diff
Вставить ник
сообщение 9:01:2008, 20:31
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 16
Регистрация: 6:01:2008
Пользователь №: 14 623
Специализация: web-programming



Репутация: - 0 +


ya ne horohorus', prosto eto ochevidno.
izvenite, ya ne hotel nikogo obidet' ili isportit' nastroenie, a tem bolee nachinat' spory. vot moi argument:
lishnii zapros, eto k primeru zapis' izobrajeniya v DB, a zatem ego zagruska, eto kazaetsya DB, a escho nujno budet pisat' obrabotchik na kakom-nibud' yazyke(php\perl\etc), kotory budet ee vyvodit eto toje zatraty po proizvoditel'nosti.
v celyah experementa ochen' udobno napisat' takoe prilojenie(dlya sebya), no esli u vas skajem poseshaemost' 10000-100000 uniq\daily, to optimizaciya budet neobhodima dlya snijeniya nagruzki na vash server ili vds, zachem potom podnimat' etot vopros, esli mojno srazu etogo izbejat'.

Сообщение отредактировал diff - 9:01:2008, 20:40
Подняться вверх 
 
Сообщение #12
sax_ol
Вставить ник
сообщение 10:01:2008, 07:44
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Для: zloi
http://www.phpbuilder.com/columns/florian1...014.php3?page=1
тут не только пример, а как инструкция, для РНР, но суть для чего угодно.
Подняться вверх 
 
Сообщение #13
sax_ol
Вставить ник
сообщение 10:01:2008, 08:08
Цитата Ответить 


==============
*****

Группа: Модеры
Сообщений: 1 740
Регистрация: 11:01:2007
Пользователь №: 8 750
Специализация: specialist



Репутация: - 27 +


Цитата(diff @ 9:01:2008, 22:31 )
lishnii zapros, eto k primeru zapis' izobrajeniya v DB, a zatem ego zagruska

Ничего не понял, но ... в любом случае, вам надо в базу что то записать, толи это сама картинка, толи это путь к картинке на диске, толи еще чего (не суть важна) ну и соответственно читать потом это, и как видите никаких неразумных лишних запросов не наблюдаеться. Работа с СУБД, по определению, быстрее чем работа с файловой структурой, хотя сама файловая структура и напоминает реляционную модель.
Обработку надо писать всегда, на чем бы то нибыло, иначе смысл всей сей кухни - мне непонятна, может вы что-то другое знаете?

Затраты будут всегда, и только программист и конкретика может решить, какие когда и как их снизить.
Выбор сабжа зависит совсем от других причин. К примеру логикой приложения, настройкой систем, ходящих в приложение (к примеру кэширование данных) и т.д. можно свести затраты к минимуму.
Но я не агитирую всех и всегда держать картинки в базе либо наоборот. Всегда надо подходить к задаче творчески, на сколько это возможно.
Подняться вверх 
 
Сообщение #14
European
Вставить ник
сообщение 10:01:2008, 09:40
Цитата Ответить 


Божественный
*****

Группа: Модеры
Сообщений: 1 816
Регистрация: 4:09:2006
Из: Минск
Пользователь №: 6 316
Специализация: C++



Репутация: - 31 +


Для: diff
Я так и думал, что у вас никаких конкретных фактов, только личный опыт, который ИМХО не совсем корректен. Я согласен c sax_ol, он вам уже пояснил выше
Подняться вверх 
 
Сообщение #15
diff
Вставить ник
сообщение 10:01:2008, 17:10
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 16
Регистрация: 6:01:2008
Пользователь №: 14 623
Специализация: web-programming



Репутация: - 0 +


Для: European
ochen' rad, shto vash opyt korrekten smile.gif

Сообщение отредактировал diff - 10:01:2008, 17:14
Подняться вверх 
 
Сообщение #16
root
Вставить ник
сообщение 11:01:2008, 04:43
Цитата Ответить 


Знающий
***

Группа: Lotus team
Сообщений: 492
Регистрация: 10:06:2006
Пользователь №: 4 745
Специализация: Lotus Notes & Domino, ERP



Репутация: - 18 +


Для: zloi
http://www.microsoft.com/technet/prodtechn...1.mspx?mfr=true
Код
Database or File System

Web applications often have graphics associated with tabular data. For example, real estate Web sites typically include photographs of homes for sale. On company intranet sites, client databases can contain image files of client products. For such applications, a common design question involves whether the images should be stored in the database or in a file system. In most cases, the best choice is to store the images in the database together with the other data.

Storing the images in a database is the better choice if the application in which the images will be used count on the benefits of a database system. The benefits of storing the images in the database include: •    
Scalability. Although file systems are designed to handle a large number of objects of varying sizes, file systems usually are not optimized for a huge number (tens of millions) of small files. Database systems are optimized for such cases.

Availability. SQL Server has availability features that extend beyond those provided by the file system. •    
SQL Server replication is a set of solutions that allow you to copy, distribute, and potentially modify data in a distributed environment.
•    
Log shipping provides a way of keeping a stand-by copy of a database in case the primary system fails.



Storing images in a file system would be a better choice if: •    
The application in which the images will be used requires streaming performance, such as real-time video playback.
•    
BLOBs require frequentaccess by applications, such as Microsoft PhotoDraw® or Adobe Photoshop, which only know how to access files.
•    
You want to use some specific feature in the NTFS file system such as Remote Storage.


As with most guidelines though, these points can assist in decision making only after a thorough research of the specific use, environment, and purpose of the application.

В большенстве случаев ИМХО лучше в базе хранить.

Сообщение отредактировал root - 11:01:2008, 04:48
Подняться вверх 
 
Сообщение #17
European
Вставить ник
сообщение 11:01:2008, 08:55
Цитата Ответить 


Божественный
*****

Группа: Модеры
Сообщений: 1 816
Регистрация: 4:09:2006
Из: Минск
Пользователь №: 6 316
Специализация: C++



Репутация: - 31 +


Для: diff
Вот вам root подтверждение выложил
Подняться вверх 
 
Сообщение #18
European
Вставить ник
сообщение 11:01:2008, 11:10
Цитата Ответить 


Божественный
*****

Группа: Модеры
Сообщений: 1 816
Регистрация: 4:09:2006
Из: Минск
Пользователь №: 6 316
Специализация: C++



Репутация: - 31 +


Для: diff

Кстати, благодаря подписке получил Ваше отредактированное сообщение и вот что отвечу.

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

Цитата
a kakie facty vy by hoteli videt'? o kakoi konkretike idet rech'? vam nujny testy na win\nix serverah? V chem problemma, mojno ih sdelat', ya uveren, shto u vas vse poluchitsya, pojalusto provedite takoi test i pokajite ego rezul'taty.


Вообще проблема хранения картинок на диске или в базе - это одна из программерских holy war, и я никак не изменю расстановку сил на данном фронте. Топикстартер начинал речь про MySQL, вы говорите также про нее. К сожалению, я не имею абсолютно никакого опыта общения с MySQL, но по анализу аналогичных веток на других форумах и различных статей пришел к выводу, что для MySQL - это непомерно сложная задача. Странно, у более крупных СУБД с этим проблем нет.

Вот цитата с одного из форумов:
Цитата
то что хранение файлов в mysql - плохо, доказано phpclub 'ом


Цитата
vy ved' sami nichego ubeditel'nogo ne skazali, krome togo, shto postavili pod somnenie moi sovet: nedelat' tak v real'nyh situaciyah.

Ну что же, приведу ссылку, полностью отражающую мое мнение (обратите внимание на выводы):
http://www.opennet.ru/base/dev/blob_mysql.txt.html
А вот ближе к SQL Server:
http://job57.narod.ru/asp2/29/index.htm

А вот ссылка, доказывающая обратное (вот только авторитетность ее сомнительна):
http://www.host.ru/support/articles/mysql-optimization.html

И вот десятки страниц полемики, не выявившей победителя:
http://xpoint.ru/forums/computers/dbms/mis...ead/13645.xhtml
http://www.hostforum.ru/archive/index.php/t-2524.html
http://www.sql.ru/forum/actualthread.aspx?tid=512451

P.S. почему кириллицей писать не можете?
Подняться вверх 
 
Сообщение #19
maykoff
Вставить ник
сообщение 11:01:2008, 21:23
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 56
Регистрация: 22:11:2006
Пользователь №: 7 960
Специализация: php mysql html css smarty



Репутация: - 2 +


Не удержался и решил вставить своё ИМХО.

Картинку в базу - очень просто - считал в строку файл и записал в бинарное поле (blob)
Вычитать - обычным способом, перед выводом указать соответствующие заголовки.

Теперь попытаюсь отговорить. Как я понял - речь идёт о пхп и мускле.
1. Зачем это всё? Для такого геморроя должны быть веские основания.
2. мускль - очень быстрая база, она хорошо обрабатывает большое количество мелких запросов (более миллиона записей - а она летает). Но обрабатывать большие записи (мегабайтные картинки) ей тяжело. 3. При обработке графики ощутимо грузится сервер. Одно дело - ссылка на файл, лежащий на сервере, другое - вычитать запись из базы (разумеется - в строку, выжрав при этом изрядно памяти, в то время как вывод файла из файловой системы происходит вообще без участия php). Потом эту строку вывести. Принтом или ехом. Когда выводятся большие куски хтмля - рекомендуется выводить его напрямую, без обработки php. На этом основана работа такого замечательного шаблонизатора, как смарти. А тут мы выводим посредством php графический файл.
3. Для чего нужна база данных? В первую очередь - для того, чтобы быстро можно было оперировать данными, изменять, осуществлять поиск. Если файл один раз загрузили, а потом только читают - нужно ли его держать в базе?
4. И наконец - ограничение файловой системы на размер файлов базы. Тяжело перевалить за 4 гига, когда в базе индексы, названия файлов и категории. Но когда в базе сами файлы( по сотне метров каждый) - то это может превратиться в реальную проблему.

Достоинств этого метода хранения данных я не вижу не одного. Разве что какие-то специфические требования.
Подняться вверх 
 
Сообщение #20
zloi
Вставить ник
сообщение 11:01:2008, 21:33
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 23
Регистрация: 23:10:2006
Из: Молодечно
Пользователь №: 7 314
Специализация: web-developer



Репутация: - 0 +


to European
а Вы вобще сами смотрели те ссылки, которые порекомендовали? Наврядли, потому-что ссылки на форум 2002-го года, где обсуждается быстродействие MySQL выглядят по крайней мере странно...
Подняться вверх 
 
Сообщение #21
European
Вставить ник
сообщение 14:01:2008, 11:14
Цитата Ответить 


Божественный
*****

Группа: Модеры
Сообщений: 1 816
Регистрация: 4:09:2006
Из: Минск
Пользователь №: 6 316
Специализация: C++



Репутация: - 31 +


Цитата(zloi @ 11:01:2008, 23:33 )
а Вы вобще сами смотрели те ссылки, которые порекомендовали?
*

Не поверишь, не только смотрел, но и внимательно читал. И я их не рекомендовал, а только привел к сведению. А что 2002 год? Неужели за это время MySQL стал суперпроизводительной базой? Ой как сомневаюсь...
Подняться вверх 
 
Сообщение #22
Holger Dee Assur...
Вставить ник
сообщение 30:01:2008, 10:12
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 54
Регистрация: 14:03:2007
Из: Москва
Пользователь №: 9 703
Специализация: MySQL базы данных и CMS



Репутация: - 0 +


Полностью согласен с maykoff - вы конечно можете засунуть картинки в базу MySQL, но как говорят разработчики и показывает личный опыт - это далеко не самый удачный способ. База сильно теряет в производительности при таких объемах обрабатываемой информации.
Подняться вверх 
 
Сообщение #23
sax_ol
Вставить ник
сообщение 30:01:2008, 10:19
Цитата