# 特性比较

| 特性 | rhosocial ActiveRecord | SQLAlchemy | Django ORM | Peewee |
|---------|-------------------|------------|------------|--------|
| **数据库支持** | SQLite, MySQL, PostgreSQL, MariaDB, Oracle, SQL Server | 几乎所有 SQL 数据库的广泛支持 | SQLite, MySQL, PostgreSQL, Oracle | SQLite, MySQL, PostgreSQL |
| **模式定义** | 带类型验证的 Pydantic 模型 | 声明式类或显式表定义 | Django 模型类 | 带字段定义的模型类 |
| **迁移** | 基本支持 | 通过 Alembic（单独包） | 内置于 Django | 通过 playhouse 扩展 |
| **关系** | 一对一、一对多、多对一关系与预加载 | 广泛的关系选项，支持懒加载/预加载 | ForeignKey, ManyToMany, OneToOne | ForeignKeyField, ManyToManyField |
| **查询构建** | 流畅可链接的 API | 强大的表达式语言 | QuerySet API | 基于模型的查询方法 |
| **事务** | 支持 ACID 与隔离级别 | 支持 ACID 与隔离级别 | 基本事务支持 | 基于上下文管理器的事务 |
| **类型验证** | 使用 Pydantic 的强类型验证 | 用于静态分析的类型提示 | 基本类型检查 | 基本字段验证 |
| **异步支持** | 原生双 API（同步+异步） | 支持（SQLAlchemy 1.4+）但模式不同 | 有限支持（Django 3.1+） | 通过 peewee-async 扩展 |
| **JSON 操作** | 原生支持 | 全面支持 | 基本支持 | 有限支持 |
| **原始 SQL 支持** | 支持，带参数安全性 | 支持，带参数安全性 | 支持，带参数安全性 | 支持，通过 raw() 方法 |
| **连接池** | 支持 | 支持 | 支持 | 有限支持 |
| **事件系统** | 全面的模型生命周期钩子 | 广泛的事件监听器 | 信号系统 | 基本钩子 |
| **Pydantic 集成** | 原生 | 通过扩展 | 通过第三方包 | 原生不支持 |
| **SSL 连接支持** | 全面，带证书验证 | 全面，带完整 SSL 选项控制 | 基本支持 | 基本支持 |
| **调试功能** | 广泛（SQL 日志记录、参数检查、查询计时） | 广泛（多级日志记录、统计） | 基本，通过第三方扩展 | 有限 |

## 聚合功能比较

| 聚合功能 | rhosocial ActiveRecord | SQLAlchemy | Django ORM | Peewee |
|--------------------|-------------------|------------|------------|--------|
| **标量查询** | 全面支持 | 全面支持 | 良好支持 | 良好支持 |
| **聚合函数** | 完全支持（COUNT, SUM, AVG 等，含 DISTINCT） | 完全支持 | 良好支持 | 基本支持 |
| **算术表达式** | 全面支持 | 全面支持 | 基本支持 | 有限支持 |
| **窗口函数** | 完全支持复杂框架规范 | 完全支持 | 有限支持 | 基本支持 |
| **CASE-WHEN 表达式** | 全面支持 | 全面支持 | 基本支持 | 有限支持 |
| **COALESCE/NULLIF 表达式** | 完全支持 | 完全支持 | 基本支持 | 基本支持 |
| **子查询表达式** | 全面支持 | 全面支持 | 有限支持 | 基本支持 |
| **JSON 表达式** | 跨数据库抽象 | 数据库特定实现 | 有限支持 | 最小支持 |
| **分组集表达式** | 完全支持 CUBE, ROLLUP, GROUPING SETS | 完全支持 | 有限支持 | 不支持 |
| **CTE 查询** | 全面支持 | 全面支持 | 有限支持 | 有限支持 |
| **高级聚合** | 直观的 API | 强大但复杂的 API | 基本 API | 有限 API |

## 调试功能比较

| 调试功能 | rhosocial ActiveRecord | SQLAlchemy | Django ORM | Peewee |
|-------------------|-------------------|------------|------------|--------|
| **SQL 语句日志记录** | 内置，带格式选项 | 全面，多级日志 | 通过 Django 调试工具栏 | 基本 |
| **参数绑定检查** | 完整参数检查 | 全面检查 | 有限 | 基本 |
| **查询计时** | 内置每查询计时 | 通过事件系统 | 通过 Django 调试工具栏 | 手动实现 |
| **查询分析** | 内置分析工具 | 通过事件监听器 | 通过第三方工具 | 有限 |
| **执行计划访问** | 内置方法 | 通过执行选项 | 通过第三方工具 | 基本方法 |
| **连接跟踪** | 内置连接跟踪 | 通过事件系统 | 有限 | 不可用 |
| **查询计数跟踪** | 内置统计 | 通过事件系统 | 通过 Django 调试工具栏 | 不可用 |
| **内存使用分析** | 基本工具 | 有限 | 通过第三方工具 | 不可用 |
| **SQL 格式化/高亮** | 支持 | 支持 | 通过 Django 调试工具栏 | 不支持 |