Expand description
Async optimizations for high-performance database operations.
This module provides utilities for:
- Concurrent execution: Run independent database operations in parallel
- Pipelined operations: Execute multiple queries with minimal round-trips
- Introspection optimization: Fetch schema metadata concurrently
§Performance Gains
| Optimization | Use Case | Typical Improvement |
|---|---|---|
| Concurrent introspection | db pull with many tables | 40-60% faster |
| Parallel trigger creation | Migrations with procedures | 30-50% faster |
| Pipelined bulk ops | Batch inserts/updates | 50-70% faster |
§Example
ⓘ
use prax_query::async_optimize::{
concurrent::{ConcurrentExecutor, ConcurrencyConfig},
pipeline::{QueryPipeline, PipelineConfig},
};
// Concurrent execution with controlled parallelism
let executor = ConcurrentExecutor::new(ConcurrencyConfig::default());
let results = executor.execute_all(tasks).await?;
// Pipelined database operations
let pipeline = QueryPipeline::new(PipelineConfig::default())
.add_query("SELECT * FROM users WHERE id = $1", vec![1.into()])
.add_query("SELECT * FROM posts WHERE author_id = $1", vec![1.into()]);
let results = pipeline.execute(&client).await?;Re-exports§
pub use concurrent::ConcurrencyConfig;pub use concurrent::ConcurrentExecutor;pub use concurrent::ExecutionStats;pub use concurrent::TaskError;pub use concurrent::TaskResult;pub use introspect::ConcurrentIntrospector;pub use introspect::IntrospectionConfig;pub use introspect::IntrospectionResult;pub use introspect::TableMetadata;pub use pipeline::PipelineConfig;pub use pipeline::PipelineError;pub use pipeline::PipelineResult;pub use pipeline::QueryPipeline;
Modules§
- concurrent
- Concurrent task execution with controlled parallelism.
- introspect
- Concurrent database introspection utilities.
- pipeline
- Pipelined database execution for high-throughput operations.