sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLでは、テーブルの各インデックスがクラスター化されているかどうかをどのように判断できますか?

    Postgresは、MySqlのような意味でクラスター化インデックスをサポートしていません。テーブルをクラスター化するために使用されたインデックスがある可能性があります。これは、列indisclusteredにクエリを実行することで確認できます。 システムカタログpg_index。

    例:

    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)
    

    クラスター: に関するドキュメントをお読みください




    1. Oracle11gでのNHibernateTransactionScopeの問題

    2. PHP:MySQLの結果を多次元配列に並べ替える

    3. MySQLはすべての空白を-に置き換えます

    4. MySQL(またはPHP?)はフィールドデータごとに結果をグループ化します