> ## Documentation Index
> Fetch the complete documentation index at: https://www.paradedb.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Choose the right filtering path for ParadeDB queries

In many databases, an index can speed up one part of a query while the remaining filters are checked later, one row at a time.
That is correct, but it can be expensive when the search condition matches many rows.

ParadeDB avoids that pattern where possible.
It can apply many filters directly during the ParadeDB index scan, including numeric comparisons, boolean checks, set membership, null checks, etc.
When a filter is better served by a different index, ParadeDB can also combine its own results with the candidates from that index before returning rows.

## Choosing a Filtering Path

The fastest option is to put frequently-filtered columns in the ParadeDB index when their type can be represented by ParadeDB.
This is the right path for most built-in scalar column types, including numbers, booleans, dates, UUIDs, and literal text. See [Indexed Columns](/docs/documentation/filtering/indexed) for the supported type and operator combinations.

The exception to this rule is when the filter depends on a specialized data type or search method that is not natively supported by the ParadeDB index.
Common examples include `ltree` path queries or PostGIS spatial filters.
See [External Indexes](/docs/documentation/filtering/external-indexes) for examples and limitations.
