If you use your provider assigned DNS server, they can have a look at its log to see what you wanted to have resolved. That's the easiest setup for them. They know you wanted "
www.helmlein.example" and the IP address the query came from, they match it with their subscriber IP table and then they got your name.
If you use your own DNS server (like PiHole or Unbound or whatever you may have set up), OR if you use one of the publicly available DNS services, your ISP needs to sniff the outgoing DNS queries, and while that's entirely possible (just catch everything with destination port 53), it's much harder for them. Also, the forwarded queries from a resolver DNS server don't look the same as the original ones from clients, but it's problem that can be solved.
If you use any of the DoT/DoH alternatives, your ISP sees an encrypted session to a known DoT/DoH server (possible on various ports). In turn, the DoH or DoT server needs to be trusted (e.g. Cloudflare says they keep no log at all).
If you use this new ODoH, many different users send their queries to a ODoH proxy which can't decrypt the queries but puts in its own IP, so not even Cloudflare ever sees the true IP the query came from. I have not yet read the respective papers, but the encryption is interesting in this one as the client needs to encrypt with something the target-server can decrypt, so will read up on that later. So in theory, you don't even need to trust either Cloudflare or the proxy.
H.