Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Лучше вынимать инф. из базы или через PHP-функцию?
 
 автор: lElectroHardl   (05.01.2011 в 18:43)   письмо автору
 
 

Я уже когда-то задавал вопрос про "что быстрее", но так и не смог это выяснить.
Нужна помощь определить, что же быстрее, вывод данных о файле из базы либо через php-функцию (getimagesize)?

  Ответить  
 
 автор: deimand   (05.01.2011 в 18:46)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 18:43)
 

а я помню, что вам ответили на этот вопрос

  Ответить  
 
 автор: lElectroHardl   (05.01.2011 в 18:49)   письмо автору
 
   для: deimand   (05.01.2011 в 18:46)
 

Я тоже помню, но у меня не выходит проверить.

  Ответить  
 
 автор: Trianon   (05.01.2011 в 18:59)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 18:49)
 

какие именно затруднения?

  Ответить  
 
 автор: lElectroHardl   (05.01.2011 в 19:19)   письмо автору
 
   для: Trianon   (05.01.2011 в 18:59)
 

Не знаю как.

  Ответить  
 
 автор: neadekvat   (05.01.2011 в 19:22)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 19:19)
 

Как.. что сделать?

  Ответить  
 
 автор: lElectroHardl   (05.01.2011 в 19:29)   письмо автору
 
   для: neadekvat   (05.01.2011 в 19:22)
 

>>Не знаю как.

Вернее, я проверял через microtime(). Но там время колеблется от 0.05 до 0.9. Что при выводе из базы, что при выводе из скрипта. И как понять, что же быстрее не понимаю.

  Ответить  
 
 автор: neadekvat   (05.01.2011 в 19:34)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 19:29)
 

Откуда вы берете имена файлов изображений?

  Ответить  
 
 автор: Trianon   (05.01.2011 в 19:34)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 19:29)
 

выполните один замер для сотни картинок, для тысячи.

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

  Ответить  
 
 автор: lElectroHardl   (05.01.2011 в 19:41)   письмо автору
 
   для: Trianon   (05.01.2011 в 19:34)
 

У меня 200 к. изображений. Я думаю, это боевые условия. Но только ради 1 показателя проделывать эту процедуру не хочется (неужели это не кто не делал и не выложил результаты?).

neadekvat (05.01.2011 в 19:34)
Из базы.

  Ответить  
 
 автор: neadekvat   (05.01.2011 в 19:43)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 19:41)
 

Так раз из базы, то логичнее будет хранить и размеры рядом с именем, чем постоянно дергать файлы.

  Ответить  
 
 автор: lElectroHardl   (05.01.2011 в 19:57)   письмо автору
 
   для: neadekvat   (05.01.2011 в 19:43)
 

Я все-равно дергаю файлы. Т.к. структура такова:

----- ----- ----- ФАЙЛ.
... Размер - | Ширина - | Высота - | ...

  Ответить  
 
 автор: neadekvat   (05.01.2011 в 20:04)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 19:57)
 

И что я должен был понять из последнего поста? Зачем дергать файл, если информация есть в базе?

  Ответить  
 
 автор: lElectroHardl   (05.01.2011 в 20:15)   письмо автору
 
   для: neadekvat   (05.01.2011 в 20:04)
 

Вот это я и хотел узнать. Будет ли это рационально и быстрее, чем вывод инфы из базы.

  Ответить  
 
 автор: neadekvat   (05.01.2011 в 20:21)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 20:15)
 

Вы смеетесь чтоли?
Я же сказал, что если имена файлов хранятся в базе, то и размеры логично хранить там же, рядом, и дополнительных запросов не понадобиться.
Было
id | filename
а станет
id | filename | filesize | width | height

  Ответить  
 
 автор: lElectroHardl   (05.01.2011 в 20:51)   письмо автору
 
   для: neadekvat   (05.01.2011 в 20:21)
 

Такая структура, как в "а станет" у меня и стоит.

  Ответить  
 
 автор: cheops   (05.01.2011 в 20:07)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 19:41)
 

Файлы будут в одной папке или разбросаны по множеству подпапок? В любом случае поиск по базе данных будет скорее всего производиться быстрее, чем по файловой системе, особенно, если MySQL будет хорошо конфигурирована и на кэш ключей и запросов будет выделено какое-нибудь приличное количество памяти, а сама таблица индексирована. Файловая система тоже кэш имеет, но если файлов много, доступ к директории осуществляется достаточно медлено.

PS Измерения на конечном сервере производятся? Подсистема ввода-вывода на сервере и на локальной машине могут здорово отличаться.

  Ответить  
 
 автор: cheops   (05.01.2011 в 18:58)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 18:43)
 

Не очень понятны условия? В базе храняться заранее определенные высчитанные размеры файлов или сами файлы?

  Ответить  
 
 автор: lElectroHardl   (05.01.2011 в 19:09)   письмо автору
 
   для: cheops   (05.01.2011 в 18:58)
 

Заранее высчитанные размеры, формат, размер файла.

  Ответить  
 
 автор: cheops   (05.01.2011 в 20:10)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 19:09)
 

В 90% случаев база данных будет быстрее, в файловой системе конечно, тоже значения заранее высчитаны, но на кэш файловой системы может быть не выделено много оперативной памяти (MySQL, как правило, всегда выделяют). Другое дело, что размер файлов может изменяться и если файловая система автоматически все поправит, в базе данных могут остаться неисправленные значения и это может быть довольно неудобно.

  Ответить  
 
 автор: lElectroHardl   (05.01.2011 в 20:17)   письмо автору
 
   для: lElectroHardl   (05.01.2011 в 18:43)
 

Всем спасибо за ответы. Вопрос решен.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования