我面临一个我想简化的问题:(可以肯定,事实上我做错了)。
通缉
我想计算 id = 1 的用户数。在 SQL 语言中,假设它是这样的:
SELECT COUNT(*) FROM users WHERE id = 1
代码
我在“提升”形式中使用 Slick,所以这是我计算用户的一段代码:
Query(Users.where( _.id === 1).length).first
实际上这里发生的是 Slick 别名 ScalaQuery,实际上是使用过滤器原因创建一个子查询,然后计算子请求的结果。
SELECT COUNT(*) FROM (SELECT * FROM users WHERE id = 1))
对于这样的查询,似乎开销很大。