CREATE INDEX statement
Overview
Oxla allows creating a single index on an empty table (before any row is added to the table). This index is used to sort data on storage, ordering it using indexed columns. This greatly speeds up the scanning table, reducing the scan just to the relevant portion of data.
Syntax
While creating an index one should define the index name, the table for which the index is created, list of columns for which the index was created.
Using index
The index is used when a query uses a range of values from a given index. To do that user must compare the index column with the literal.
Performance impact
Single column index
Let’s consider the given table:
Let’s say we want to calculate the value of orders for 5th November 2019:
This query will scan all data for columns unit_price, quantity, and commit_date for table lineorder. To speed this query up we can use the index:
If the table was created with this index then the query mentioned above will scan just over rows for which commit_date
is equal to 2019-11-05.
Unfortunately, expressions like the one shown below will not take advantage of the index.
Multi-column index
The index might contain multiple columns. Let’s consider a different index for the table line order mentioned above:
Thanks to this index, extracting orders related to a given part or orders for a given part and given time range will be very fast. Example of queries taking advantage of index:
A query that will not take advantage of the index: