Propel offers various table engines, each optimized for specific use cases. The MergeTree family is the primary group of table engines, designed for high-performance inserts and reads.

Here’s an overview of the key MergeTree engines:

  1. MergeTree: The most common engine, ideal for append-only, immutable data.

    • Stores data in parts and merges them in the background
    • Never deletes records during merges
  2. ReplacingMergeTree: Replaces old rows with new ones during merges.

    • Useful for deduplication or storing the latest version of each record
  3. SummingMergeTree: Sums up numeric columns for rows with the same sorting key.

    • Ideal for pre-aggregating data
  4. AggregatingMergeTree: Performs incremental aggregation during merges.

    • Efficient for complex aggregations on large datasets
  5. CollapsingMergeTree: Handles state changes by “collapsing” pairs of records.

    • Uses a sign column to determine which rows to collapse
    • Requires careful ordering of inserts
  6. VersionedCollapsingMergeTree: An improved version of CollapsingMergeTree.

    • Allows inserting data in any order
    • Uses an additional version column for more flexible collapsing

Each engine in the MergeTree family is designed to optimize specific data operations, allowing you to choose the best fit for your use case.