|
|
|
| Я уже когда-то задавал вопрос про "что быстрее", но так и не смог это выяснить.
Нужна помощь определить, что же быстрее, вывод данных о файле из базы либо через php-функцию (getimagesize)? | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 18:43)
| | а я помню, что вам ответили на этот вопрос | |
|
|
|
|
|
|
|
для: deimand
(05.01.2011 в 18:46)
| | Я тоже помню, но у меня не выходит проверить. | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 18:49)
| | какие именно затруднения? | |
|
|
|
|
|
|
|
для: Trianon
(05.01.2011 в 18:59)
| | Не знаю как. | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 19:19)
| | Как.. что сделать? | |
|
|
|
|
|
|
|
для: neadekvat
(05.01.2011 в 19:22)
| | >>Не знаю как.
Вернее, я проверял через microtime(). Но там время колеблется от 0.05 до 0.9. Что при выводе из базы, что при выводе из скрипта. И как понять, что же быстрее не понимаю. | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 19:29)
| | Откуда вы берете имена файлов изображений? | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 19:29)
| | выполните один замер для сотни картинок, для тысячи.
В идеале, конечно, лучше бы при этом картинок в базе было общее число такого порядка, который будет в боевых условиях. Только где ж Вы его возьмете. | |
|
|
|
|
|
|
|
для: Trianon
(05.01.2011 в 19:34)
| | У меня 200 к. изображений. Я думаю, это боевые условия. Но только ради 1 показателя проделывать эту процедуру не хочется (неужели это не кто не делал и не выложил результаты?).
neadekvat (05.01.2011 в 19:34)
Из базы. | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 19:41)
| | Так раз из базы, то логичнее будет хранить и размеры рядом с именем, чем постоянно дергать файлы. | |
|
|
|
|
|
|
|
для: neadekvat
(05.01.2011 в 19:43)
| | Я все-равно дергаю файлы. Т.к. структура такова:
----- ----- ----- ФАЙЛ.
... Размер - | Ширина - | Высота - | ... | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 19:57)
| | И что я должен был понять из последнего поста? Зачем дергать файл, если информация есть в базе? | |
|
|
|
|
|
|
|
для: neadekvat
(05.01.2011 в 20:04)
| | Вот это я и хотел узнать. Будет ли это рационально и быстрее, чем вывод инфы из базы. | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 20:15)
| | Вы смеетесь чтоли?
Я же сказал, что если имена файлов хранятся в базе, то и размеры логично хранить там же, рядом, и дополнительных запросов не понадобиться.
Было
id | filename
а станет
id | filename | filesize | width | height | |
|
|
|
|
|
|
|
для: neadekvat
(05.01.2011 в 20:21)
| | Такая структура, как в "а станет" у меня и стоит. | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 19:41)
| | Файлы будут в одной папке или разбросаны по множеству подпапок? В любом случае поиск по базе данных будет скорее всего производиться быстрее, чем по файловой системе, особенно, если MySQL будет хорошо конфигурирована и на кэш ключей и запросов будет выделено какое-нибудь приличное количество памяти, а сама таблица индексирована. Файловая система тоже кэш имеет, но если файлов много, доступ к директории осуществляется достаточно медлено.
PS Измерения на конечном сервере производятся? Подсистема ввода-вывода на сервере и на локальной машине могут здорово отличаться. | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 18:43)
| | Не очень понятны условия? В базе храняться заранее определенные высчитанные размеры файлов или сами файлы? | |
|
|
|
|
|
|
|
для: cheops
(05.01.2011 в 18:58)
| | Заранее высчитанные размеры, формат, размер файла. | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 19:09)
| | В 90% случаев база данных будет быстрее, в файловой системе конечно, тоже значения заранее высчитаны, но на кэш файловой системы может быть не выделено много оперативной памяти (MySQL, как правило, всегда выделяют). Другое дело, что размер файлов может изменяться и если файловая система автоматически все поправит, в базе данных могут остаться неисправленные значения и это может быть довольно неудобно. | |
|
|
|
|
|
|
|
для: lElectroHardl
(05.01.2011 в 18:43)
| | Всем спасибо за ответы. Вопрос решен. | |
|
|
|