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

postgresql index na sloupci řetězce

Pro jednoduché kontroly rovnosti (= ), index B-stromu na varchar nebo text sloupec je jednoduchý a nejlepší volba. Určitě to hodně výkonu pomáhá .

Samozřejmostí je index B-Stromu na jednoduchém integer má lepší výkon. Pro začátek srovnání jednoduchého integer hodnoty jsou o něco rychlejší. Ale co je důležitější, výkon je také funkcí velikosti indexu. Větší sloupec znamená méně řádků na datovou stránku, znamená to, že je třeba přečíst více stránek ...

Od HomeAddress je stěží unikátní, není to dobrý přirozený primární klíč. Důrazně doporučuji použít náhradní primární klíč namísto. serial sloupec je pro to jasná volba. Jeho jediným účelem je mít jednoduchý a rychlý primární klíč pro práci.

Pokud máte jiné tabulky odkazující na tuto tabulku, bude to ještě efektivnější. Namísto duplikování dlouhého řetězce pro sloupec cizího klíče potřebujete pouze 4 bajty pro celý sloupec. A nepotřebujete tolik kaskádových aktualizací, protože adresa se nutně změní, zatímco náhradní pk může zůstat stejný (ale nemusí, samozřejmě).

Vaše tabulka může vypadat takto:

CREATE TABLE resident (
   resident_id serial PRIMARY KEY
  ,address text NOT NULL
   -- more columns
);

CREATE INDEX resident_adr_idx ON resident(address);

Výsledkem jsou dva indexy B-Stromu. Jedinečný index na resident_id a prostý index na address .

Další informace o indexech v příručce .
Postgres nabízí spoustu možností – ale pro tento jednoduchý případ už žádné další nepotřebujete.



  1. Rekurzivní spouštěč MySql nefunguje

  2. Vyberte datum z mé databáze bez sekund pomocí PHP MySql

  3. Návrh databáze s periodickými senzorovými daty

  4. Jak sloučit tabulku v MySQL