Index Scan
An index scan is a database operation that retrieves data by traversing a database index structure rather than scanning the entire table. This method significantly improves query performance when accessing a subset of rows that match specific criteria, especially in time-series databases where temporal indexing is crucial.
How index scans work
When executing a query, the database engine can use an index scan to quickly locate relevant data by following the organized structure of an index, similar to using a book's index to find specific pages. This is particularly efficient for time-series data where timestamps serve as a natural index.
Next generation time-series database
QuestDB is an open-source time-series database optimized for market and heavy industry data. Built from scratch in Java and C++, it offers high-throughput ingestion and fast SQL queries with time-series extensions.
Advantages over full table scans
Index scans offer several benefits compared to full table scans:
- Reduced I/O operations
- Faster data retrieval for selective queries
- Efficient range-based searches
- Optimal for time-series queries with temporal conditions
For time-series databases, index scans are particularly valuable when querying specific time ranges:
SELECT *FROM tradesWHERE timestamp >= '2023-01-01'AND timestamp < '2023-01-02';
Next generation time-series database
QuestDB is an open-source time-series database optimized for market and heavy industry data. Built from scratch in Java and C++, it offers high-throughput ingestion and fast SQL queries with time-series extensions.
Performance considerations
The effectiveness of an index scan depends on several factors:
- Index selectivity
- Index coverage
- Data distribution
- Query conditions
When dealing with time-series data, proper time-based partitioning can enhance index scan performance by limiting the scan to relevant partitions.
Common use cases
Index scans are particularly valuable in:
- Time range queries
- Point queries on indexed columns
- Range-based aggregations
- Join operations using indexed columns
For example, in financial market analysis, index scans enable rapid access to specific trading periods:
SELECT symbol, avg(price)FROM tradesWHERE timestamp BETWEEN '2023-01-01' AND '2023-01-31'GROUP BY symbol;
The query optimizer typically chooses between an index scan and a full table scan based on statistics and cost estimates, aiming for optimal query performance.