首页 > 解决方案 > 限制 PostgreSQL 上用户生成的查询的资源耗尽

问题描述

我正在编写一个面向公众的查询和搜索 API,用户可以在其中指定多个条件。这些条件将通过各种过滤器和条件映射到复杂的 SQLAlchemy 查询。

限制查询的复杂性和持续时间的最佳方法是什么,这样用户就不会意外或故意通过创建处理时间过长的查询而导致系统拒绝服务?不安全的情况是 1) 一次返回太多项目 2) 结果查询太复杂和太慢,并且 PostgreSQL 服务器需要永远评估。根据过滤器,数据库可能会返回少数或数百万个项目。

使用 PostgreSQL 作为数据库。

标签: postgresqlsqlalchemy

解决方案


推荐阅读