Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Добрый день!
Перешел работать с Mysql на "i" и объектную модель.
вроде делаю, работает. но не знаю правильно ли я делаю. вот тут то мне нужен ваш совет, ото вдруг я пару 10ком запросов сервак БД положу))
у меня все в процедурах делаю так:
процедура:
BEGIN
SELECT * FROM user_general WHERE user_general.id = varid LIMIT 1;
SELECT * FROM user_lang WHERE id_user = varid; -- список
END;$$
....
if ( !($e = $db->query( "call user_get_allcontact('".$_SESSION['user_id']."')" )) ) echo 'SQl error user_get_allcontact';
$row = $e->fetch_assoc(); - тут я так понимаю попадают данные первого селекта
потом что бы получить список языков которыми владеет пользователь (может и 0 строк быть) делаю так:
$db->next_result();
$e = $db->store_result(); // либо $db->store_result();
$listlang = $e->fetch_all(MYSQLI_ASSOC); //получили список языков разом. php 5.3 вродь
как нормально, или можно лучше? ото напрягает делать $db->next_result(); $db->store_result(); после каждого вызова, когда на странице используется вызов двух процедур или как в примере
Неактивен
ото вдруг я пару 10ком запросов сервак БД
Не положите
вродь как нормально, или можно лучше?
Можно отдельными запросами, в вашем случае обьвертывания запросов в процедуре, производительности практически не прибавит.
Неактивен
Соглашусь, используйте обычные SQL запросы из приложения без использования процедуры, если в ней только эти два запроса и больше никаких проверок/вычислений. Как вообще пришла такая мысль в голову?
Неактивен
в общем до этого писал в только в процедурном стиле и mysql.
решил перейти на новый уровень ооп mysqli, ..пишут что процедуры безопасней и быстрее)) к тому же пока разобрался(но все равно еще кучу непонятков как лучше и как оно там работает), терь буду знать как юзать это по надобности) хочется в sql разобратся что бы высокие нагрузки выдерживало, пока на mySQL потренируюсь потом на оракл или ms sql server там уж видно будет)
юзать процедуры хорошо, что бы легко можно было оптимизировать запросы а в php не лезть, тож хорошо))
Неактивен
Скажем так, Вы пытаетесь доехать на работу не на машине, а на самолёте, но т.к. ехать всего 100 метров, машина разгонится и соответственно доедет быстрее
В случаях, когда в процедуре только выборки, которые в любом случае надо обработать, выгоды нет совсем. Процедура как минимум считывается и парсится, а это какое-то время. Понятное дело, что мизерное, но всё же дольше, чем передать запрос напрямую. Более того, такой подход усложняет понимание кода и отлавливание ошибок: если Вы получили неверные значения в выборке, Вам придётся изменять запрос, а для этого Вам надо будет лезть в БД и редактировать процедуру, что не совсем удобно. И это не говоря о том, что кому-то понадобится дорабатывать Ваши скрипты.
Дело Ваше, конечно же, кто как привык, но именно такая привычка ни к чему хорошему не приведёт, так-что бросайте её пока не врослась
Неактивен
vangogh написал:
решил перейти на новый уровень ооп mysqli, ..пишут что процедуры безопасней и быстрее))
Рекомендую посмотреть статью PHP: критика перехода с оригинального API MySQL на mysqli и PDO
Неактивен
спасибо, седня на обеде почитаю
Неактивен
Процедурам редко можно найти полезное применение.
Из реальных преимуществ разве что случаи, когда нужно делать большое количество итераций, в течении которых нужно выполнять последовательную выборку, обработку данных и запись (В быту такое можно применить разве что для переработки каких то данных из базы)
В остальных случаях от процедур, обычно реальней получить больше вреда чем пользы (проблемный дебагинг,отсутствия лорнирования запросов, сложности с репликацией и другое)
Неактивен
и сгенирированых в процессе запросов выполнить не получится(( например при большой форме поиска
Неактивен
Страниц: 1