

# Aurora PostgreSQL Limitless Database のクエリ
<a name="limitless-query"></a>

Aurora PostgreSQL Limitless Database は、クエリの PostgreSQL 構文と互換性があります。`psql`、または PostgreSQL で動作するその他の接続ユーティリティを使用して、Limitless Database をクエリできます。クエリを実行するには、「[Aurora PostgreSQL Limitless Database DB クラスターへの接続](limitless-shard.md#limitless-endpoint)」に示すように、無制限エンドポイントに接続します。

すべての PostgreSQL `SELECT` クエリは、Aurora PostgreSQL Limitless Database でサポートされています。ただし、クエリは 2 つのレイヤーで実行されます。

1. クライアントがクエリを送信するルーター

1. データが配置されているシャード

パフォーマンスは、異なるシャードに対する異なるクエリの高度な同時処理が可能な方法でデータベースをクエリできるかどうかに依存します。クエリは最初に分散トランザクションレイヤー (ルーター) で解析されます。クエリの実行を計画する前に、クエリに参加するすべてのリレーションの場所を特定するための分析フェーズがあります。すべてのリレーションが同じシャードにフィルタリングされたシャードキーを持つシャードテーブル、またはリファレンステーブルである場合、クエリ計画はルーターレイヤーでスキップされ、計画と実行のためにシャードに完全にプッシュダウンされます。このプロセスにより、異なるノード (ルーターとシャード) 間のラウンドトリップの回数が減り、ほとんどの場合パフォーマンスが向上します。詳細については、「[Aurora PostgreSQL Limitless Database の単一シャードクエリ](limitless-query.single-shard.md)」を参照してください。

**注記**  
[直積集合](https://www.postgresql.org/docs/current/queries-table-expressions.html#QUERIES-FROM) (クロス結合) などの特定のケースでは、シャードとは別にデータを取得することでクエリのパフォーマンスが向上します。

詳細については、「[Aurora PostgreSQL Limitless Database リファレンスLimitless Database リファレンス](limitless-reference.md)」の「[EXPLAIN](limitless-reference.DML-limitations.md#limitless-reference.DML-limitations.EXPLAIN)」を参照してください。クエリに関する一般的な情報については、PostgreSQL ドキュメントの「[Queries](https://www.postgresql.org/docs/current/queries-overview.html)」を参照してください。

**Topics**
+ [Aurora PostgreSQL Limitless Database の単一シャードクエリ](limitless-query.single-shard.md)
+ [Aurora PostgreSQL Limitless Database の分散クエリ](limitless-query.distributed.md)
+ [Aurora PostgreSQL Limitless Database の PostgreSQL ログでの分散クエリトレース](limitless-query.tracing.md)
+ [Aurora PostgreSQL Limitless Database の分散デッドロック](limitless-query.deadlocks.md)