Rust项目中PostgreSQL数据库的选择、配置与测试
1. 数据库选择
在Rust项目中与PostgreSQL交互时,截至2020年8月,有三个主要选择:tokio - postgres、sqlx和diesel。这三个项目都很受欢迎,在生产环境中也有大量使用。选择哪一个,主要取决于对以下三个方面的考量:
1.1 编译时安全性
与关系型数据库交互时容易犯错,例如查询中列名或表名拼写错误、执行数据库引擎拒绝的操作(如字符串和数字相加)、期望返回的数据中有某个字段但实际没有。在大多数编程语言中,这些错误通常在运行时才会被发现,使用tokio - postgres时就是如此。而diesel和sqlx会尝试在编译时检测这些错误。
- diesel :利用其CLI将数据库模式生成为Rust代码,用于检查所有查询的假设。
- sqlx :使用过程宏在编译时连接到数据库,检查提供的查询是否有效。
1.2 查询接口
- tokio - postgres和sqlx :期望直接使用SQL编写查询。
- diesel :提供自己的查询构建器,查询以Rust类型表示,通过调用方法添加过滤器、执行连接等操作,这通常被称为领域特定语言(DSL)。
SQL具有极高的可移植性,可用于任何需要与关系型数据库交互的项目。而diesel的DSL需要一定的学习成本,且仅在使用diesel时相关。不过,它便于编写可重用组件。
超级会员免费看
订阅专栏 解锁全文
373

被折叠的 条评论
为什么被折叠?



