sql >> Database >  >> RDS >> PostgreSQL

Hoe kunnen we in PostgreSQL zien of elke index van een tabel is geclusterd of niet?

Postgres ondersteunt geen geclusterde indexen zoals in MySql. Er is mogelijk een index die is gebruikt om de tabel te clusteren. U kunt dit controleren door de kolom indisclustered . op te vragen in de systeemcatalogus pg_index.

Voorbeeld:

create table my_table(id serial primary key, str text unique);

select relname, indisclustered
from pg_index i
join pg_class c on c.oid = indexrelid
where indrelid = 'public.my_table'::regclass

     relname      | indisclustered 
------------------+----------------
 my_table_str_key | f
 my_table_pkey    | f
(2 rows)

cluster my_table using my_table_str_key;

select relname, indisclustered
from pg_index i
join pg_class c on c.oid = indexrelid
where indrelid = 'public.my_table'::regclass

     relname      | indisclustered 
------------------+----------------
 my_table_str_key | t
 my_table_pkey    | f
(2 rows)

Lees de documentatie over CLUSTER:




  1. aanroep van een lidfunctie execute() op een niet-object

  2. Geheugen effectieve manier om BLOB-gegevens te lezen in C#/SQL 2005

  3. Meteoor.js gebruiken met php-serverkant

  4. SQL:het gemiddelde aantal dagen tussen runs voor elke hardloper vinden