2011-05-11 20 views
2

나는 php와 MySql의 조합을 사용하고 있습니다. 내 경우에는 하나의 활동에 대해 하나의 'select'와 'insert'라는 두 개의 쿼리를 사용하는데, 때로는 세 개의 쿼리가 사용됩니다. 이것은 매우 다른 사용자에 의해 수행됩니다.SQL 함수에 대한 별도의 쿼리?

쿼리를 실행하기 위해 별도로 mysql_query 함수를 사용하고 있습니다. 이것이 좋은가요? 아니면 모든 쿼리를 실행하는 SQL 함수를 사용하는 것이 낫습니다. 나는 성능면에서 어느 것이 더 좋은지 알고 싶다. 당신이 mysqli 확장자를 사용하는 경우

답변

0

당신은 multi_query 이용할 수있다 :

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

그러나 쿼리 중 하나가 쿼리 다른 사람의 성공에 의존하는 경우, 그들은 밖으로 분리되어야 함을 유의하시기 바랍니다 오류 검사를 위해.

+0

내 사례입니다. 두 번째 쿼리는 첫 번째 쿼리의 결과에만 기반하여 실행됩니다. 어느 쪽이 쿼리를 별도로 실행하거나 SQL 함수를 작성하는 것이 더 낫습니다. – jeeva

+0

그런 다음이를 개별적으로 실행하십시오. 첫 번째 함수가 실제로 호출 된 것을 확인하기 전에 오류를 확인해야합니다. –

+0

하나가 다른 프로그램에 의존하는 경우 ** 프로그램 레이어에서 피드백을 확인해야하기 때문에 ** 프로그램을 별도로 실행해야합니다 **. ** 편집 ** 다중 쿼리 기능에 대해 '오류시 롤백'옵션이있을 수 있습니다. – Rudie

1

내 의견으로는 단일 작업을 잘 수행하는 기능을 만드는 것이 더 좋습니다. 이로 인해 기능을 테스트하기가 더 쉬워지고 앞으로 다른 작업에 활용 될 수 있습니다. 귀하의 경우에는 stored procedure을 작성하여 루틴을 실행합니다.

0

구체적인 예를 보여줄 수 있다면 도움이 될 것입니다. - 지금은 모두 아주 가설적입니다. 그러나 :

작업을 단일 쿼리로 결합 할 수 있다면 가장 빠른 옵션입니다. 예를 들면 다음과 같습니다.

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

select 문의 결과에 대해 일부 처리를 수행해야하는 경우 처리를 수행 할 저장 프로 시저를 만들 수 있습니다. 이렇게하면 데이터를 PHP 서버로 다시 왕복하지 않아도되므로 성능상의 이점이 있습니다. 그러나 PHP가 저장 프로 시저보다 처리를 실행하는 데 더 좋고/더 빠른 언어 일 수 있습니다. 예를 들어, 텍스트를 조작해야한다면 PHP로 처리 할 것입니다.