Какой метод обращения к БД использовать в Yii2 лучше?
Если это одиночные объекты - смело можете использовать ActiveRecord. Краткость кода и удобство написания и поддержки кода перевешивает небольшой оверхед в создании объектов (который, на практике, никакой роли играть не будет).
А вообще, разницы между использованием "строителя запроса" и между использованием AR почти что нет, разве что использовать DAO - небольшой надстройке над PDO, которая доступна через Yii::$app->db (то есть, стандартный компонент соединения к базе данных).
Но если объектов десятки и сотни - я использую, обычно, asArray()->all();, чтобы получать результат из таблицы в виде массивов. Это покрывает 95% необходимого кода для работы с базами данных (ну, как мне кажется). Если нужен более низкоуровневый интерфейс - всегда можно определить метод в объекте AR, который возвратит необходимые данные, и внутри него произойдет необходимый запрос.
Кстати, посоветую включить кеширование схем таблиц - очень помогает в ускорении работы AR в будущем.
На мой взгляд надо использовать тот что позволяет получить необходимый результат. Если оба его дают, тот что более читабельный. Если Вас интересует производительность, тогда не стоит использовать фреймворки и пишите запросы чистым php.
На самом же деле ActiveQuery$data = Posts::find()->all();
расширяет Query$data= (new Query())
так что второй должен быть менее ресурсозатратным, но все зависит от того, как Вы составите запрос.
Я использую ActiveQuery, там где это возможно (99% случаев)
К тому же если вас напрягает$row->idCategoryes->category;
Создайте в моделе метод getCategory и будет во вьюхе у Вас:$row->category;