Эквивалент PHP для .DataTable в NET.Выбрать (выражение)?

#php #optimization

#php #оптимизация

Вопрос:

Я собираюсь оптимизировать уровень доступа к данным моего веб-приложения php. В настоящее время мое веб-приложение php выполняет множество запросов (некоторые, возможно, избыточные) к базе данных. Я хочу уменьшить количество запросов к базе данных, написав всего несколько более сложных запросов, которые возвращают большие и более общие наборы данных. Затем я хочу сохранить эти результаты в переменной $ GLOBALS.

Затем я могу получить доступ к данным в другом месте моего веб-приложения следующим образом:

 $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() в .Net framework, и надеялся на что-то подобное в разработке PHP. Если такового не существует, любое решение, которое поможет мне сократить количество обращений к БД, было бы отличным.

Ответ №1:

  1. Зависит. Всегда. Профиль.
  2. Вы могли бы попробовать что-то вроде array_filter для замены DataTable.Select встроенного решения.