sql >> Databasteknik >  >> RDS >> PostgreSQL

fråga mycket långsammare med preparerade Statement jämfört med uttalande

Ditt förberedda uttalande avger full_address till text (Postgres inbyggda texttyp), medan det verkar som om din tabell är skapad med en citext (skiftlägeskänslig) texttyp (eller, du saknar ett index på full_address::text ). Kanske prova att skapa ett index på full_address::text och se om ditt förberedda uttalande kommer att ta upp det.

Ett annat alternativ är att använda en text skriv för full_address kolumn och skapa sedan ett funktionsindex på lower(full_address) -- det här alternativets smaklighet beror på dina krav.

Jag tror att en del av problemet är att JDBC inte känner till citext skriv så om du inte kan få JDBC att skicka din adress till databasen som en citext typ, kommer den att tolkas av frågeplaneraren som text , precis som din setString() metod gör det förmodligen.

Intressant nog har jag stött på ett liknande problem nyligen

Upplysning:Jag arbetar för EnterpriseDB (EDB)




  1. Hur kan jag synkronisera två MySQL-tabeller som har samma strukturer och olika server

  2. left join med villkor för höger tabell i mysql

  3. Använda ersättningar med en rå Sequelize-fråga:undvika enstaka citattecken?

  4. Hur man får en rad i SQLite efter index (inte efter id)