Web 開発では、データ クエリは不可欠な部分です。 Yii フレームワークに関しては、独自のデータ アクセス オブジェクト (アクティブ レコード) がデータ クエリを強力にサポートします。ただし、大量のデータ クエリを処理する場合は、いくつかの最適化手段によってデータ アクセス効率を向上させる必要もあります。この記事では、Yii フレームワークでデータクエリを最適化する方法に焦点を当てます。
「遅延ロード (遅延読み込み)」を使用すると、関連データにアクセスする必要がある場合にのみ Yii フレームワークにクエリを実行させることができます。これにより、不必要なデータクエリが削減されます。たとえば、ユーザー情報をクエリする場合、以下に示すように、ユーザーに関連する注文情報を「遅延読み込み」に設定できます。
$user = User::findOne(1); // 此时并未查询与用户相关的订单信息 $orders = $user->getOrders()->all(); // 此时才进行查询
大量のデータをクエリする場合は、ループでデータを個別にクエリするのではなく、バッチ クエリ データを使用することをお勧めします。たとえば、注文情報をクエリする場合、次のように、クエリ対象に設定されている注文 ID をクエリの IN 条件に渡すことができます。
$orderIds = [1, 2, 3, 4, 5]; $orders = Order::find()->where(['in', 'id', $orderIds])->all();
$cacheKey = 'cache_key_' . $productId; $cacheDuration = 600; // 缓存10分钟 $product = Yii::$app->cache->getOrSet($cacheKey, function () use ($productId) { return Product::findOne($productId); }, $cacheDuration);
以上がYii フレームワークでのデータクエリ: データアクセス効率の最適化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。