отдельные запросы функций SQL? - PullRequest
2 голосов
/ 11 мая 2011

Я использую комбинацию php и MySql. В моем случае я использую два запроса (один «выбрать» и «вставить») для действия, иногда 3 запроса. Это будут делать очень часто разные пользователи.

Я использую функцию mysql_query отдельно для выполнения запросов. Хорошо это или лучше использовать функцию SQL, которая выполняет все запросы. Я хочу знать, что лучше в отношении производительности.

Ответы [ 3 ]

1 голос
/ 11 мая 2011

По моему мнению, лучше создать функцию, которая хорошо выполняет одну операцию.Это облегчает тестирование функций и позволяет использовать их в других операциях в будущем.В вашем случае я бы создал хранимую процедуру для выполнения процедуры.

0 голосов
/ 11 мая 2011

Было бы полезно, если бы вы могли показать конкретные примеры - прямо сейчас, это все очень гипотетически.Однако:

Если вы можете объединить операции в один запрос, это самый быстрый вариант.Например:

insert into tableA
select x, y, z
from tableB
where Foo = Bar

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

0 голосов
/ 11 мая 2011

Если вы используете расширение mysqli, вы можете использовать multi_query:

http://php.net/manual/en/mysqli.multi-query.php

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...