The Index Dialog

Use the Index dialog to create an index on a specified table or materialized view.

The Index dialog organizes the development of a index through the following dialog tabs: General and Definition. The SQL tab displays the SQL code generated by dialog selections.


Use the fields in the General tab to identify the index:

  • Use the Name field to add a descriptive name for the index. The name will be displayed in the pgAdmin tree control.
  • Use the drop-down listbox next to Tablespace to select the tablespace in which the index will reside.
  • Store notes about the index in the Comment field.

Click the Definition tab to continue.


Use the fields in the Definition tab to define the index:

  • Use the drop-down listbox next to Access Method to select an index type:

    • Select btree to create a B-tree index. A B-tree index may improve performance when managing equality and range queries on data that can be sorted into some ordering (the default).
    • Select hash to create a hash index. A hash index may improve performance when managing simple equality comparisons.
    • Select gist to create a GiST index. A GiST index may improve performance when managing values with more than one key.
    • Select gin to create a GIN index. A GIN index may improve performance when managing two-dimensional geometric data types and nearest-neighbor searches.
    • Select spgist to create a space-partitioned GiST index. A SP-GiST index may improve performance when managing non-balanced data structures.
    • Select brin to create a BRIN index. A BRIN index may improve performance when managing minimum and maximum values and ranges.
  • Use the Fill Factor field to specify a fill factor for the index. The fill factor specifies how full the selected method will try to fill each index page.

  • Move the Unique? switch to the Yes position to check for duplicate values in the table when the index is created and when data is added. The default is No.

  • Move the Clustered? switch to the Yes position to instruct the server to cluster the table.

  • Move the Concurrent build? switch to the Yes position to build the index without taking any locks that prevent concurrent inserts, updates, or deletes on the table.

  • Use the Constraint field to provide a constraint expression; a constraint expression limits the entries in the index to those rows that satisfy the constraint.

Use the context-sensitive fields in the Columns panel to specify which column(s) the index queries. Click the Add icon (+) to add a column:

  • Use the drop-down listbox in Column field to select the name of the column from the table.

  • If enabled, use the drop-down listbox to select an available Operator class to specify the type of action performed on the column.

  • If enabled, move the Sort order switch to specify the sort order:

    • Select ASC to specify an ascending sort order (the default);
    • Select DESC to specify a descending sort order.
  • If enabled, move the Nulls switch to specify the sort order of nulls:

    • Select First to specify nulls sort before non-nulls;
    • Select Last to specify nulls sort after non-nulls (the default).
  • Use the drop-down listbox in the Collation field to select a collation to use for the index.

Click the SQL tab to continue.

Your entries in the Index dialog generate a SQL command (see an example below). Use the SQL tab for review; revisit or switch tabs to make any changes to the SQL command.


The following is an example of the sql command generated by user selections in the Index dialog:


The example shown demonstrates creating an index named dist_codes that indexes the values in the code column of the distributors table.

  • Click the Info button (i) to access online help. View context-sensitive help in the Tabbed browser, where a new tab displays the PostgreSQL core documentation.
  • Click the Save button to save work.
  • Click the Cancel button to exit without saving work.
  • Click the Reset button to restore configuration parameters.