Welcome to plsql4all.blogspot.com SQL, MYSQL, ORACLE, TERADATA, MONGODB, MARIADB, GREENPLUM, DB2, POSTGRESQL.

Friday 5 April 2024

What is an Index

An index in the context of databases is a data structure that improves the speed of data retrieval operations on a table by allowing quicker access to specific rows based on the values stored in certain columns. Indexes are particularly useful for speeding up SELECT queries, as they enable the database system to locate the desired data more efficiently. Here's an overview of indexes and their different types:- 


1. Types of Indexes:- 


    a. Single-Column Index:-  This type of index is created on a single column of a table. It speeds up queries that involve conditions, sorting, or joins based on the indexed column. Single-column indexes are the simplest form of indexes and are useful for queries targeting specific columns.


    b. Composite Index (Multi-Column Index):-  Composite indexes are created on multiple columns of a table. They allow for efficient data retrieval based on multiple criteria or conditions involving the indexed columns. Composite indexes are useful for queries that involve WHERE clauses with multiple conditions or for optimizing joins on multiple columns.


    c. Unique Index:-  A unique index ensures that the values in the indexed column(s) are unique across the table. It prevents duplicate entries in the indexed column(s). Unique indexes are automatically created when defining a primary key or a unique constraint on a column or set of columns.


    d. Clustered Index:-  A clustered index determines the physical order of data rows in the table based on the indexed column(s). It defines the order in which data is stored on disk, and there can be only one clustered index per table. The leaf nodes of a clustered index contain the actual data rows, organized in the order specified by the index key.


    e. Non-Clustered Index:-  A non-clustered index is a separate data structure from the actual table data. It contains a copy of the indexed column(s) along with pointers to the corresponding rows in the table. Unlike a clustered index, a table can have multiple non-clustered indexes. Non-clustered indexes are useful for improving query performance for specific search criteria without affecting the physical order of data.


2. Creating an Index:- 


In SQL, you can create an index using the CREATE INDEX statement. Here's the basic syntax for creating an index:- 

 

    CREATE INDEX index_name

    ON table_name (column_name);

   

    - index_name is the name of the index you want to create.

    - table_name is the name of the table on which you want to create the index.

    - column_name is the name of the column on which you want to create the index.


    Example:-     

    CREATE INDEX idx_customer_id

    ON customers (customer_id);

    

This statement creates a single-column index named idx_customer_id on the customer_id column of the customers table.


Indexes are essential for optimizing database performance, but they should be used judiciously and tailored to the specific needs of the application to avoid unnecessary overhead and maintenance costs.

No comments:

Post a Comment

Please provide your feedback in the comments section above. Please don't forget to follow.