sql >> Database >  >> RDS >> PostgreSQL

query veel langzamer met prepareStatement in vergelijking met statement

Uw voorbereide verklaring werpt full_address in text (het ingebouwde teksttype van Postgres), terwijl het lijkt alsof uw tabel is gemaakt met een citext (hoofdletterongevoelig) teksttype (of, u mist een index op full_address::text ). Probeer misschien een index te maken op full_address::text en kijk of je voorbereide verklaring het zal oppikken.

Een andere optie is om een ​​text . te gebruiken typ voor het full_address kolom en maak vervolgens een functionele index op lower(full_address) -- de smaak van die optie hangt af van wat uw eisen zijn.

Ik denk dat een deel van het probleem is dat JDBC niets weet over de citext typ zo, tenzij je JDBC zover kunt krijgen om je adres naar de database te sturen als een citext type, wordt het door de queryplanner geïnterpreteerd als text , net als uw setString() methode waarschijnlijk wel.

Interessant is dat ik recentelijk een soortgelijk probleem tegenkwam

Openbaarmaking:ik werk voor EnterpriseDB (EDB)




  1. PHP echo SQL-telling

  2. Verbind en verwerk Oracle-gegevens van Objective-C op Mac OS

  3. mysql tijdsverschil naar uren

  4. De tafel is vol (met MEMORY engine)