When using relational queries like the ones in thi...
# orm-help
j
When using relational queries like the ones in this example
Copy code
const users = await prisma.user.findMany({
  where: {
    posts: {
      none: {
        views: {
          gt: 100,
        },
      },
      every: {
        likes: {
          lte: 50,
        },
      },
    },
  },
})
It generated a pretty bad sql statement that looked something like this (not exact because I using a combination of examples)
Copy code
SELECT "public"."contact"."id", "public"."contact"."uuid", "public"."contact"."contact_id"  "public"."contact"."login_id" FROM "public"."contact" WHERE "public"."contact"."contact_id" IN ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$40,$41,$42,$43,$44,$45,$46,$47,$48,$49,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$100,$101,$102,$103,$104,$105,$106,$107,$108,$109,$110,$111,$112,$113,$114,$115,$116,$117,$118,$119,$120,$121,$122,$123,$124,$125,$126,$127,$128,$129,$130,$131,$132,$133,$134,$135,$136,$137,$138,$139,$140,$141,$142,$143,$144,$145,$146,$147,$148,$149,$150,$151,$152,$153,$154,$155,$156,$157,$158,$159,$160,$161,$162,$163,$164,$165) OFFSET $166
This seems like it would not work for larger applications using Postgres since we have many queries that may have 10k or 50k items that are in the
IN
array. Is it recommended to just go straight sql for those type of queries?
I was wondering if anyone had an answer to this?
i
I swear I saw something in the docs on query optimization
j
that still doesn’t seem very optimal when using a RDMS db
i
I'm curious about the problem. Where is the huge
IN
set coming from?
There's also the ability to just do raw queries, right? Another unsatisfying suggestion 😉
j
yeah I have tables with millions of rows , I think the raw query is still the only optimal way