Skip to main content
DataStore delivers significant performance improvements over pandas for many operations. This guide explains why and how to optimize your workloads.

Why DataStore Is Faster

  1. SQL Pushdown

Operations are pushed down to the data source:

  1. Column Pruning

Only needed columns are read:

  1. Lazy Evaluation

Multiple operations compile to one query:

Benchmark: DataStore vs pandas

Test Environment

  • Data: 10 million rows
  • Hardware: Standard laptop
  • File format: CSV

Results

Key Insights

  1. GroupBy operations: DataStore up to 19.93x faster
  2. Complex pipelines: DataStore 5-6x faster (SQL pushdown benefit)
  3. Simple slice operations: Performance comparable - difference negligible
  4. Best use case: Multi-step operations with groupby/aggregation
  5. Zero-copy: to_df() has no data conversion overhead

When DataStore Wins

Heavy Aggregations

Complex Pipelines

Large File Processing

Multiple Column Operations


When pandas Is Comparable

In most scenarios, DataStore matches or exceeds pandas performance. However, pandas may be slightly faster in these specific cases:

Small Datasets (<1,000 rows)

Simple Slice Operations

Custom Python Lambda Functions

ImportantEven in scenarios where DataStore is “slower”, performance is typically on par with pandas - the difference is negligible for practical use. DataStore’s advantages in complex operations far outweigh these edge cases.For fine-grained control over execution, see Execution Engine Configuration.

Zero-Copy DataFrame Integration

DataStore uses zero-copy for reading and writing pandas DataFrames. This means:
Key implications:
  • to_df() is essentially free - no serialization or memory copying
  • Creating DataStore from pandas DataFrame is instant
  • Memory is shared between DataStore and pandas views

Optimization Tips

  1. Enable Performance Mode for Heavy Workloads

For aggregation-heavy workloads where you don’t need exact pandas output format (row order, MultiIndex columns, dtype corrections), enable performance mode for maximum throughput:
Expected improvement: Up to 2-8x faster for filter+groupby workloads, reduced memory usage for large Parquet files. See Performance Mode for full details.

  1. Use Parquet Instead of CSV

Expected improvement: 3-10x faster reads

  1. Filter Early

  1. Select Only Needed Columns

  1. Leverage SQL Aggregations

  1. Use head() Instead of Full Queries

  1. Batch Operations

  1. Use explain() to Optimize


Profiling Your Workload

Enable Profiling

Identify Bottlenecks

Compare Approaches


Best Practices Summary


Quick Decision Guide

For automatic optimal engine selection, use config.set_execution_engine('auto') (default). For maximum throughput on aggregation workloads, use config.use_performance_mode(). See Execution Engine and Performance Mode for details.
Last modified on June 23, 2026