![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Parallelogram |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 22.1.2013 Репутация: нет Всего: нет |
Здравствуйте, у меня есть цикл который выводит картинки, а alt='' и title='' должны будут выводиться из БД. Я могу только сделать так, чтобы каждую итерацию отправлялся запрос к БД, но это очень много обращений к базе. Как можно оптимизировать этот процесс?
|
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
делать один запрос к базе, а в цикле обрабатывать результат запроса
|
|||
|
||||
Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
Тоже пару дней назад вставала подобная задача, нужно было при обработке строк находить в них определенные значения а потом лезть в базу и искать по нему другое значение (правильное). Проводил анализ по скорости и занимаемой памяти.
К сожалению результат исследования затерялся, но я помню что победило такое решение (сразу адаптировано под задачу автора топика): 1. Выбираем всю таблицу с альтами и тайтлами 2. Загоняем результат в массив 3. Далее перебирая файлы подставляем альты выбирая их из массива по ключу с именем файла Минус этого решения: жрет много памяти (мой массив жрал под 30 мегабайт за раз) Плюсы: оно очень быстрое Так что такое решение гораздо эффективнее постоянных запросов к БД, т.к. память увеличит вообще не проблема, а вот скорость уменьшить никак не удастся |
|||
|
||||
whatisnot |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 14.12.2014 Репутация: 1 Всего: 2 |
Вряд ли выборка значений для атрибутов alt и title "сожрет" много памяти, ибо просто невозможно представить, что при наличие, пусть даже всего несколько сотен записей, вывод сразу всех этих сотен изображений на одну страницу является разумным решением.
Это сообщение отредактировал(а) whatisnot - 7.2.2015, 15:29 |
|||
|
||||
s0lman |
|
|||
![]() Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
Фигассе, это сколько же картинок у вас на странице? -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
||||
|
||||
sQu1rr |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 11.11.2008 Где: london Репутация: 2 Всего: 13 |
Если как вы описали, то быстрым быть не может. Для каждого файла придется перебирать в среднем N/2 строчек массива, что есть линейная сложность. Если файлов всего N получаем квадрат. Где это быстро? Единственное, то что нужно минимизировать запросы к базе, что понятно, все скинуть в один массив и сразу. А далее по ключу имени файла построить дерево - тот-же ассициотивный массив, и вот по нему искать. Извнияюсь если вы именно это и имели ввиду (пункт 3 звучит именно так), но это не то что у вас написано
5 мегабайт запись? что вы там храните? ![]() |
||||
|
|||||
evilice |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 27.11.2008 Репутация: нет Всего: нет |
Я не уверен, что правильно понял что именно автор имел в виду. Но попробую предположить следующее:
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |