Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: какими методами пользоваться? [6]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (6): « 1 2 3 4 5 [6]   

> Описание: какими методами пользоваться?
tuareg
Отправлено: 12 Декабря, 2011 - 01:24:47
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




caballero пишет:

Не понимаете разницу между вызовом одной процедуры с миллионом запросов и вызовом миллиона процедур с одним запросом?

А вы можете мне ее объяснить? Просто Вы сами понимаете что там происходит.
Давайте как я понимаю. А Вы меня поправьте если что Улыбка
Итак.
Я создал процедуру. Руками, скриптом не важно. Что с ней происходит дальше??? Она я так понимаю в скомпилированном виде не храниться. Или храниться?
При вызове запроса (не процедуры) затраты будут следующие: распарсить запрос и выполнить его Так?
При вызове процедуры вызвать ее подставить данные(распарсить их) и выполнить запрос.
При одинаковых условиях тут нужно просто определиться что быстрее сработает? распарсивание запроса или данных для процедуры.
 
 Top
caballero
Отправлено: 12 Декабря, 2011 - 01:40:12
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Не факт что накладные расходы по вызову даже скомпилированной процедуры будут меньше чем вызов запроса (я не зря привел пример с функцией). То есть при вызове процедуры вам надо выполнить и процедуру и запрос а в случае запроса только запрос. Кроме того, запрос - декларативен, а процедура - программа, то есть как минимум должен быть вызван некий интерпретатор (процедура не компилится в бинарный код, за исключением если вы пишете процедуру на С если это позволяет данный сервер)
А в случае с конкретно Mysql простой запрос однозначно выполнится быстрее чем процедура.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
tuareg
Отправлено: 12 Декабря, 2011 - 01:48:14
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Я не спорю с простым запросом. Это я понимаю как сработает. Я говорю, что когда мы выполняем допустим запрос один большой(три четыре объединения) или 3 и более простых запросов. Как Вы думаете, что в данном случае быстрее выполнится?
 
 Top
caballero
Отправлено: 12 Декабря, 2011 - 01:55:39
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Я говорю, что когда мы выполняем допустим запрос один большой(три четыре объединения) или 3 и более простых запросов. Как Вы думаете, что в данном случае быстрее выполнится?

Одному Б-гу известно. Ну и оптимизатору сервера БД. В Mysql очень вероятно что три простых - он заточен на такой режим - быстрая выборка простых данных.
В промышленных серверах типа оракла скорее всего один большой. Но опять же все зависит как сработает оптимизатор, как он распорядится индексами при построении плана запроса и т.д.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
tuareg
Отправлено: 12 Декабря, 2011 - 01:58:40
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Спасибо за содержательную беседу, я узнал кое-что новое. Да и просто не скучно было Улыбка
Буду обдумывать
 
 Top
Страниц (6): « 1 2 3 4 5 [6]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB