2011-05-12 6 views
0

필자는 내 PHP 웹 애플리케이션의 데이터 액세스 레이어를 최적화하려고합니다. 현재, 내 PHP 웹 응용 프로그램은 데이터베이스에 많은 쿼리 (중복 가능)를 많이 만듭니다. 더 크고 일반적인 데이터 세트를 반환하는 좀 더 복잡한 쿼리 만 작성하여 데이터베이스에 대한 쿼리 수를 줄이고 싶습니다. 그런 다음이 결과를 $ GLOBALS 변수에 저장하려고합니다.PHP의 .NET DataTable.Select (표현식)에 상응합니까?

그럼 난과 같이 내 웹 응용 프로그램의 다른 곳에서 데이터에 액세스 할 수 있습니다 :

$GLOBALS['dbResults1'] = $dbObject->get(); 
$result = new ResultWrapper($GLOBALS['dbResults1']); 
$array_eligible_athletes = $result->Select(' age > 20 '); 
$array_obese = $result->Select(' bmi > 100 ')->orderBy('lastname,firstname desc'); 
etc... 

을 내 현재의 방식에 반대 :

// each of these makes a trip to the database 
$array_eligible_athletes = $dbObject->getWhere('age > 20'); 
$array_obese = $dbObject->getWhere('bmi > 100')->orderBy('lastname,firstname desc'); 
etc... 

그래서 내 질문은 :

1) 나의 새로운 접근법은 좋은 생각입니까? 새로운 접근 방식으로 내 웹 응용 프로그램의 성능이 향상 될 가능성은 어느 정도입니까?

2) 1)이 좋은 아이디어 인 경우, 내가 원하는대로 라이브러리가 있습니까? 예. 데이터 집합을 쿼리하고 관리하는 더 좋은 방법입니다.

닷넷 프레임 워크의 DataTable.Select() 기능을 정말 즐겼으며 PHP 개발에서 비슷한 것을 기대하고있었습니다. 하나도 존재하지 않는다면 db에 대한 호출을 줄이는 데 도움이되는 해결책은 훌륭 할 것입니다.

답변

0
  1. 에 따라 다릅니다. 항상. 윤곽.
  2. array_filter 같은 것을 시도해 볼 때 DataTable.Select을 기본 제공 솔루션으로 대체 할 수 있습니다.
관련 문제