Any reason you can’t use the PostgreSQL equivalent of MySQL’s LOAD INFILE? I think its “COPY” - PostgreSQL: Documentation: 16: COPY
Without waiting for an answer I’m going to assume you can, so the way I upload 100k+ rows in a few seconds is to write the uploaded file to /tmp/<randomfilename> (you can do this with Anvil) then LOAD INFILE LOCAL “/tmp/<filename>” etc etc.
Have a read of this thread :