문제

나는 인용 부품의 대답을 받았한 의 또 다른 질문 광산:

PHP/MySQL 세계 말 저장 프로시저는 no-go

나는 알고 싶습니다:그렇습니까?왜?왜?

[편집]내가 이것을 의미로 일반적인 질문을하지 않고 특정 필요가 마음에서[/편집]

도움이 되었습니까?

해결책

나 개발하고 유지하 PHP/MySQL 응용 프로그램.여기에 제 경험으로 저장되는 절차가 있습니다.

시간이 지남에의 응용 프로그램은 매우 복잡 성장했다.그리고 모든 논리에 php 측에,몇 가지 작업을 쿼리 데이터베이스로 100 개 이상 짧은 쿼리를 처리합니다.

MySQL 은 그렇게 빠른 것 성능 여전히 수락가능하고,노출되지 않도록 주의하십시오.

우리는 결정에서의 최신 버전의 소프트웨어의 일부를 이동하는 논리 저장되는 절차에 대해 복잡한 작업입니다.

우리가 달성하는 중요한 성과를 얻는 사실로 인해 우리는 보내지 않는 데이터 사이에 앞뒤로 PHP and MySQL.

라 다른 포스터는 여기 PL/SQL 이 아닌 현대적인 언어하고 디버깅하기 어려운.

Bottom Line:저장 프로시저는 훌륭한 도구에 대한 특정한 상황입니다.그러나 나는 그 사용을 권장하지 않으면 당신이 좋은 이유입니다.간단한 애플리케이션을 위해서는,저장되는 절차가 가치가 있지 않을 다합니다.

다른 팁

을 사용할 때 저장된 절차와 MySQL,당신은 종종을 사용할 필요가 mysqli 인터페이스에서 PHP 및 일 mysql 인터페이스입니다.

그 이유는다는 사실로 인해 저장 프로시저를 종종이 반 이상의 1 결과를 설정합니다.않는 경우,mysql API 를 처리 할 수 없을 것입니다 그것은 당신을 얻을 오류가 있습니다.

이 mysqli 인터페이스가 기능을 처리는 이러한 여러 결과 집합,함수 등 mysqli_more_resultsmysqli_next_result.

을 유지한 경우에는 반환하는 모든 결과에 설정에서 저장 프로시저는 다음을 사용할 필요가 이러한 Api,저장 프로시저를 생성합 1 결과에 대해 설정된 실제 실행한 다음,1 가 각 결과에 대한 설정 의도적으로 반환에서 저장되는 절차입니다.

나는 일반적으로 멀리에서 저장 프로시저를 추가하기 때문에 로드하는 데이터베이스는 99%,시간의 당신의 가장 큰 병목 현상이 발생합니다.를 추가하는 새로운 php 서버에 비하면 아무것도 없을 만드는 MySQL db 복제됩니다.

당신은 특정 필요한 마음에는 고려할까요?저장 프로시저는 훨씬 적은 휴대용 보다는"일반"SQL,일반적으로 왜 사람들이 사용하고 싶지 않다.또한,서면 공 PL/SQL,나는 절차적 방법을 쓰는 코드의 복잡하고 그것은 단지 매우 현대적이거나 시험을 할 수 있지요.그들은 쉽게 수행할 수 있습니다 어떤 특별한 경우 최적화가 필요하지만,나는 확실히 두 번 생각합니다.제프가 유사한.

이것은 주관적 질문입니다.

나 개인적으로 포함하는 모든 계산 내에서 PHP 만이 정말로 사용 MySQL 으로 테이블에 있습니다.

하지만,당신이 느끼는 경우는 그것을 쉽게 저장 프로시저를 사용하여 모든 수단에 의해,가서 그것을 하십시오.

나지 않을 것이 말하는"저장 프로시저는 no-go"말이"그들을 사용하지 않는 좋은 이유없이".

MySQL 저장 프로시저는 특별하게 끔찍한 구문(Oracle,MSSQL 는 아주 끔찍한다)을 유지하고,그들을 그냥 복잡하게 응용 프로그램입니다.

지 저장 프로시저를 사용하는 경우에 당신은 실제(측정)는 이유를 이렇게,그렇지 않으면 하지 않습니다.그게 내 생각을 어쨌든.

가 가능한 공포증의 저장 프로시저를 mysql,부분적으로 되지 않는 압도적으로 강한(에 비해 Postgresql 도 MSSQL,mysqls 저장 프로시저는 크게 부족한).

에 더하기:그들과의 인터페이스에서 그것을 하나 이상의 언어를 쉽습니다.

만약 누군가는 상태"저장 프로시저를 사용하기 때문에 나쁘지 않 휴대용하는 다른 데이터베이스"그런 다음 이 물론 의미들이 생각하는 당신은 가능성이 전환하는 데이터베이스는 의미,그들이 말하는 그들은 당신을 사용하지 않아야 mysql.

그것은 인기를 사용하 ORM 이러한 일이지만,저는 개인적으로 생각 ORM 은 BadThing(질문:82882)

나는 생각을 사용하여 저장된 절차를 제공할 수 있는 몇 가지 추상화에서 특정 응용 프로그램으로 언제 어디에서 당신이 사용하는 것과 같은 SQL 덩어리 코드를 업데이트하거나 추가하고,동일한 데이터를 만들 수 있습 하나 sproc save_user($attr.....) 오히려 반복하는 것이 자신을 모든 곳에 있습니다.

동의 구문은 털이 있는 경우와 귀하의 사용을 MSSQL 및 oracle sprocs 차이가 있을 수 있습 fustrate.

당신이 알고 있어야 저장된 절차에서 지원되지 않습 Mysql 전 5.0 버전. http://dev.mysql.com/doc/refman/5.0/en/stored-routines.html 또한 절차를 저장하는 경향이 있었다상에서는 구현합니다.지금 Mysql5.1 시작하고 농작물은 야생에서 나의 사용이 저장된 절차와 Mysql.

내가 만드의 사용을 제한 저장되는 절차,그리고 그것은 잘 작동합니다.나가도발을 위해 한 나의 회사의 클라이언트,작업에 자신의 전자 통신기이다.클라이언트가 주식 시스템,우리가 구현된 집합 저장된 절차에서 자신의 체계 및 내장 API 통신습니다.이는 우리가 추상적인 자신의 데이터베이스 및 그들은 그를 구현할 수 있다는 논리에 저장되는 절차가 있습니다.간단하지만 만족 비즈니스 요구 사항습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top