

# 查询 Aurora PostgreSQL Limitless Database
<a name="limitless-query"></a>

Aurora PostgreSQL Limitless Database 与 PostgreSQL 查询语法兼容。您可以使用 `psql` 或任何其他与 PostgreSQL 配合使用的连接实用程序来查询您的 Limitless Database。要运行查询，您需要连接到无限端点，如 [连接到您的 Aurora PostgreSQL Limitless Database 数据库集群](limitless-shard.md#limitless-endpoint) 所示。

Aurora PostgreSQL Limitless Database 支持所有 PostgreSQL `SELECT` 查询。然而，查询是在两个层上执行的：

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)