Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytania dotyczące wydajności Phalcon

Aby uzyskać dostęp do ->uczestników w ten sam sposób za pomocą QueryBuilder, musisz wbudować join w Query.

Przykładowy kod może wyglądać tak:

$queryBuilder = $this->getDI()->getModelsManager()
    ->createBuilder()
    ->columns(['p.id','participants.*'])
    ->addFrom('Entity\Projects', 'p')
    ->leftJoin('Entity\Participants', 'participants.projectId = p.id', 'participants')
    ->groupBy('p.id, participants.id')
    ->orderBy('p.id ASC');

$resultSet = $queryBuilder->getQuery()->execute();

groupBy() by jest tutaj używany, aby wynik był możliwie wielowymiarowy.

Tego rodzaju zapytanie (testowane pod PgSQL) spowodowało, że Phalcon utworzył kilka kolejnych obiektów ResultSet uczestników pi wewnątrz zestawów wyników dla projektów p .

Nadal możesz przejść przez to za pomocą foreach() ale mimo wszystko nie jestem pewien, czy zmniejszyło to ostateczną liczbę zapytań .

Uruchamianie $result = $resultSet->toArray() wykonane $result['pi'] pozostań jako zestaw wyników, więc powinieneś zachować ostrożność. Możesz wymusić zrzut jako tablice, definiując dokładne kolumny w columns() parametry. Ma to swoją wadę - nie będziesz już czerpać zysków z groupBy() , przynajmniej na Phalconie 1.3.2 i PHP 5.5.3 tutaj działam.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trudności z instalacją mysql gem na Ubuntu

  2. Wiele zliczeń z różnymi warunkami w jednym zapytaniu MySQL

  3. Jak wstawić wartość BOOL do bazy danych MySQL?

  4. Najlepsze praktyki dotyczące przechowywania informacji bankowych w bazie danych

  5. mysql wybierz różne wiersze w kolumnie listy rozdzielanej przecinkami