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

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

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

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

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

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

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

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

Встает вопрос, как определить, какой же способ окажется в итоге быстрее?
Или, может уже известно, какой способ быстрее?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2013, 13:11
Ответы с готовыми решениями:

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

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

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

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

4
9 / 9 / 0
Регистрация: 26.02.2010
Сообщений: 165
14.10.2013, 21:54 2
))) тестами...
вообще непонятно ничего, все размыто. а конкретика где? с чего взяли что mysql дольше?
все всегда зависит от структуры бд, от структуры программы, и от оптимизации под железо mysql
0
14 / 4 / 1
Регистрация: 08.11.2012
Сообщений: 189
Записей в блоге: 1
14.10.2013, 22:19  [ТС] 3
Цитата Сообщение от 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 4
незнаю. вы не даете данные какая нагрузка будет.
может там 100 строк, а может миллион, может там нагрузка 50 тыс запросов, а может 1 запрос в сек.
0
Заблокирован
15.10.2013, 21:06 5
Цитата Сообщение от Vitukr Посмотреть сообщение
Если писать один большой запрос, то он будет выполняться долго, так как много будет пустых мест в таблице.
Как правило все наоборот: засасывается масса лишней инфы вследствии декартова "размножения". Но вам уже правильно написали - только тесты. Потому что логика приложения и конкретные параметры не релевантны. МОжет у вас там вообще нет индексов - тогда проще засосать вообще все и по-быстрому выкинуть лишнее, может у вас все грамотно проиндексировано и запрошено только нужное...
0
15.10.2013, 21:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2013, 21:06
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru