С Новым годом! Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
14 / 4 / 1
Регистрация: 08.11.2012
Сообщений: 189
Записей в блоге: 1

SQL и PHP код, что быстрее?

14.10.2013, 13:11. Показов 4358. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На сайте есть база данных MySQL. Сайт написан на PHP.
Необходимо выводить данные с базы отфильтрованные.
Данные хранятся в 20 таблицах связанные между собой.

Стоит вопрос о быстроте вывода отфильтрованных данных на страницу сайта.

Первый способ. Можно сделать запрос к базе, объеденив через LEFT JOIN все таблицы и задав все параметры выбора.
Полученную таблицу обработать в PHP коде в соответствии с заданной сортировкой и выложить на странице результат.

Либо второй способ. Разбить запрос на несколько запросов к базе данных. Полученные таблицы обработать в PHP коде и так далее.

Первый способ более долго (по идее) будет выполняться в SQL, чем второй (несколько запросов).
Но второй способ будет дольше выполняться в PHP, так как те параметры выбора, которые не были сделаны в SQL надо сделать в PHP.

Встает вопрос, как определить, какой же способ окажется в итоге быстрее?
Или, может уже известно, какой способ быстрее?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.10.2013, 13:11
Ответы с готовыми решениями:

Что быстрее: DLookUp или SQL SELECT
Здравствуйте! Функция: DLookUp("";"tblACad_Object";" = " & 18) и запрос: SELECT tblACad_Object.Наименование FROM tblACad_Object ...

через что быстрее подключаться к sql servery?
Вопрос вот в чем через что будет быстрее подключение и работа с sql servery, через ADo или есчть еще что-нибудь в этом роде(типа чисто для...

Что быстрее: макрос или код VBA ?
Имеется ввиду макросы в MS Access. Нужна конкретная информация по сабжу.

4
9 / 9 / 0
Регистрация: 26.02.2010
Сообщений: 165
14.10.2013, 21:54
))) тестами...
вообще непонятно ничего, все размыто. а конкретика где? с чего взяли что mysql дольше?
все всегда зависит от структуры бд, от структуры программы, и от оптимизации под железо mysql
0
14 / 4 / 1
Регистрация: 08.11.2012
Сообщений: 189
Записей в блоге: 1
14.10.2013, 22:19  [ТС]
Цитата Сообщение от vscorpion Посмотреть сообщение
))) тестами...
вообще непонятно ничего, все размыто. а конкретика где? с чего взяли что mysql дольше?
все всегда зависит от структуры бд, от структуры программы, и от оптимизации под железо mysql
Я не говорил что быстрее, а что медленнее, я спрашиваю об этом.

Более конкретно. Обработка данных происходит в два этапа. Сначала по запросу SQL, потом результат запроса обрабатывается в PHP.
Свести только к чему то одному, не получится.

Теперь встает вопрос, если вся обработка кода состоит из двух часте: SQL и PHP, то как распределить задачи так, чтобы в сумме было наименьшее число времени.

Теперь вводные. 20 таблиц с которых надо получить данные по фильтру. Данные, это порядка 30 полей по которым еще входные данные (в том числе массивы) на фильтрацию.

Ну два варианта разбиения на две части выполнения, я уже написал.
Если писать один большой запрос, то он будет выполняться долго, так как много будет пустых мест в таблице.
Поэтому то и 20 таблиц. Но выведя все в одну таблицу легче написать код обработки этих данных.

Если писать 20 запросов, то они в сумме быстрее выполнятся, но полученные данные придется дополнительно сортировать, проверять и фильтровать в PHP.

Представим, что в первом случае запрос выполняется 100 секунд, а обработка 20 секунд.
Во втором все запросы выполняются 60 секунд, а обработка 60 секунд.
Вот так надо прийти к минимальной сумме.

Вот здесь трудно, без метода тыка (написания кода и проверки работы), определить как поступить.
Но тыкаться не хочется.
0
9 / 9 / 0
Регистрация: 26.02.2010
Сообщений: 165
14.10.2013, 23:17
незнаю. вы не даете данные какая нагрузка будет.
может там 100 строк, а может миллион, может там нагрузка 50 тыс запросов, а может 1 запрос в сек.
0
Заблокирован
15.10.2013, 21:06
Цитата Сообщение от Vitukr Посмотреть сообщение
Если писать один большой запрос, то он будет выполняться долго, так как много будет пустых мест в таблице.
Как правило все наоборот: засасывается масса лишней инфы вследствии декартова "размножения". Но вам уже правильно написали - только тесты. Потому что логика приложения и конкретные параметры не релевантны. МОжет у вас там вообще нет индексов - тогда проще засосать вообще все и по-быстрому выкинуть лишнее, может у вас все грамотно проиндексировано и запрошено только нужное...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.10.2013, 21:06
Помогаю со студенческими работами здесь

На Unity можно оптимизировать код, что-бы он быстрее работал?
На Unity можно оптимизировать код, что-бы он быстрее работал?

Php+mysql что будет если запрос SELECT выполнится быстрее чем UPDATE (в разных потоках)
Ребята. Вот объясните мне пожалуйста. Может ли быть такое?: Предположим, что открылось 2 потока одновременно (2 юзера открыли...

Дружба Denwer(PHP 5.3.3) с MSSQL 2008 R2. Не удаётся установить подключения к MS SQL через PHP код
Доброго времени суток. Столкнулся с проблемой подключения к базе данных Microsoft SQL server 2008 R2. Все действия происходят на одном...

PHP код - код есть, а что с ним делать неизвестно, вопросов не имею
Вот код <? mysql_connect('localhost','root','461544') or die(mysql_error()); mysql_select_db('sait'); if(isset($_POST)) { $a =...

Запуск процесса что лучше? что быстрее? что надежнее? Winexec CreateProcess ShellExecute
Здравствуйте , какую функцию лучше использовать для программного запуска процесса winexec CreateProcess ShellExecute ? В чем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru