sql >> Databáze >  >> RDS >> PostgreSQL

dotaz mnohem pomalejší s readyStatement ve srovnání s příkazem

Váš připravený výpis přenáší full_address do text (vestavěný typ textu Postgres), zatímco se zdá, že vaše tabulka je vytvořena s citext (nerozlišují se malá a velká písmena) typ textu (nebo vám chybí index na full_address::text ). Možná zkuste vytvořit index na full_address::text a uvidíte, zda to vaše připravené prohlášení zachytí.

Další možností je použít text zadejte full_address a poté vytvořte funkční index na lower(full_address) -- chutnost této možnosti závisí na vašich požadavcích.

Myslím, že část problému spočívá v tom, že JDBC nezná citext zadejte, takže pokud nemůžete přimět JDBC k odeslání vaší adresy do databáze jako citext typu, bude plánovačem dotazů interpretován jako text , stejně jako vaše setString() metoda pravděpodobně ano.

Zajímavé je, že jsem nedávno narazil na podobný problém

Zveřejnění:Pracuji pro EnterpriseDB (EDB)




  1. Jak provést výběrový dotaz v bloku DO?

  2. ActiveRecord najde a vrátí pouze vybrané sloupce zarovnané s [:id]

  3. django nemůže připojit mysql v docker-compose

  4. MySql:Vyberte položky, které mají všechny hodnoty