# 高级查询特性

本章探讨ActiveRecord的高级查询功能，这些功能允许您构建复杂的数据库查询，自定义查询行为，并优化性能。

## 概述

ActiveRecord通过`ActiveQuery`类提供了强大的查询构建器接口。虽然基本查询足以满足许多用例，但更复杂的应用程序通常需要高级查询功能来处理特殊需求。

本章涵盖的高级功能包括：

- [自定义ActiveQuery类](custom_activequery_classes.md) - 为特定模型创建专门的查询类
- [查询作用域](query_scopes.md) - 定义可重用的查询条件和方法
- [动态查询构建](dynamic_query_building.md) - 在运行时以编程方式构建查询
- [原生SQL集成](raw_sql_integration.md) - 在需要时集成自定义SQL
- [公共表表达式](common_table_expressions.md) - 使用CTEs进行复杂和递归查询
- [异步访问](async_access.md) - （❌ 未实现）使用异步数据库操作

## 何时使用高级查询功能

高级查询功能在以下场景中特别有用：

1. **复杂业务逻辑**：当您的应用程序具有复杂的数据检索需求，涉及多个条件、连接或聚合

2. **代码组织**：当您想要封装查询逻辑以提高代码可读性和可维护性

3. **性能优化**：当您需要对查询执行进行精细控制以优化数据库性能

4. **特殊需求**：当您需要利用数据库特定功能或执行复杂的SQL操作

5. **异步操作**：当您的应用程序受益于非阻塞数据库访问

以下各节将通过详细的解释和实用示例指导您了解每个高级查询功能。