Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.pinecone.io/llms.txt

Use this file to discover all available pages before exploring further.

Prefer bulk import over upsert for large loads

When you need to populate a new namespace or load a large dataset (for example, millions of records or hundreds of GB), importing from object storage is usually the most efficient and cost-effective path compared to streaming upserts.
  • Import is optimized for one-time or bulk loads from Parquet in your object store and is priced based on data read during the job. See Import cost.
  • Upsert is priced in write units based on request size; many small requests can cost more than fewer large ones for the same total data. See Write unit pricing.
Use upsert (including batch upsert) for ongoing, incremental ingestion after your initial load. For how import and upsert compare, see the data ingestion overview. Partitioning tenants with namespaces instead of many separate indexes often lowers storage overhead and query cost, because cost depends in part on how much data each query scans. For patterns and rationale, see Manage cost.

Right-size reads and queries

  • Avoid returning vector values in query responses when you do not need them (include_values=false), especially at high top_k, to reduce read unit usage.
  • Use metadata filters so queries scan fewer records where your workload allows.
Indexes built on Dedicated Read Nodes are not subject to read unit limits for query, fetch, and list operations. For sizing and capacity planning guidance, see the Dedicated Read Nodes guide.

Choose the right index capacity mode

For sustained, high read throughput, dedicated read nodes can be more cost-effective than on-demand when you fully utilize provisioned read capacity. For spiky or low-QPS workloads, on-demand may be cheaper. See When to use dedicated read nodes and Understanding cost.

See also