버트 랜드에 PHP4에서 업그레이드보다는 새로운 시스템 환경과 관련된 문제 같은데, 그런 다음 기존 코드를 나는 것 리팩토링에 관심이 있다면
보고서를 실행하는 동안 CPU 및 메모리 사용을 먼저 모니터링하는 것이 좋습니다. SQL 서버를 잠그고 있습니까, 아니면 Apache를 잠그고 있습니까? (PHP 코드로 인해 많은 스트레스가 시스템에 걸리면 발생합니다)?
처음에는 MySQL을 심각하게 숙청하여 전체 보고서 생성 프로세스를 리팩토링해야했던 프로젝트에서 작업했습니다. 그러나 작업이 끝나면 더 복잡한 PHP 코드를 통해 Apache에로드가 전달되었습니다. 우리의 최종 솔루션은보고 기능을위한 더 나은 성능을 제공하고 PHP를 사용하여 MySQL에서 기본적으로 수행 할 수 없었던 것에 대한 불만을 해결하기 위해 데이터베이스 디자인을 리팩토링하는 것이 었습니다.
보고서의 특성에 따라 보고서에 사용되는 데이터를 비정규 화하는 것이 좋습니다. 데이터웨어 하우스 역할을하며 OLTP 원칙보다는 OLAP 원칙을 중심으로 설계된 두 번째 데이터베이스를 구축하는 것을 고려할 수도 있습니다. OLAP 및 데이터웨어 하우징에 대한 일반적인 설명은 Wikipedia에서 시작하십시오.
그러나 심각한 리팩토링을 시작하기 전에 phpinfo()를 보면 환경이 충분히 유사하다는 것을 확인 했습니까? PHP와 SHOW VARIABLES 용; MySQL의 ?
PHP5의 객체는 자동으로 참조로 전달됩니다. – grantwparks
정말요?! 범위의 아이디어를 이기지 못할 것입니다. 개체를 함수에 전달하면 해당 함수는 실제 개체가 아닌 개체의 복사본에서 작동합니다. (객체를 참조로 전달하지 않는 한) – Bingy
@grantwparks는 총 단순화라고 말했습니다 ... http://php.net/manual/en/language.oop5.references.php '키 중 하나 PHP 5 OOP의 핵심은 종종 "객체는 기본적으로 참조에 의해 전달됩니다"라는 것입니다. 이것은 완전히 사실이 아닙니다. 이 섹션에서는 몇 가지 예를 사용하여 일반적인 생각을 수정합니다. ' – MrMesees