私は単純化したい問題に直面しています:(確かに、私は実際にそれを間違っています)。
募集
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))
このようなクエリのオーバーヘッドはかなり大きいようです。