<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/from-traditional-partitions-to-micro-partitions-how-snowflake-and-databend-reduce-data-scanning-1kozjn0l7" -->

---
title: From Traditional Partitions to Micro-Partitions—How...
description: An explainer on how cluster keys work in Snowflake and Databend, contrasting them with traditional user-defined partitions. Cluster keys improve physical data...
canonical: https://daily.dev/posts/from-traditional-partitions-to-micro-partitions-how-snowflake-and-databend-reduce-data-scanning-1kozjn0l7
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: From Traditional Partitions to Micro-Partitions—How Snowflake and Databend Reduce Data Scanning | daily.dev
og:description: An explainer on how cluster keys work in Snowflake and Databend, contrasting them with traditional user-defined partitions. Cluster keys improve physical data...
og:url: https://daily.dev/posts/from-traditional-partitions-to-micro-partitions-how-snowflake-and-databend-reduce-data-scanning-1kozjn0l7
og:image: https://api.daily.dev/og/posts/1KoZjN0l7.png
og:image:alt: From Traditional Partitions to Micro-Partitions—How Snowflake and Databend Reduce Data Scanning
og:image:width: 1200
og:image:height: 630
og:locale: en
---

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

# From Traditional Partitions to Micro-Partitions—How Snowflake and Databend Reduce Data Scanning

**[Databend Blog](https://daily.dev/sources/databend)** · 13 min read · 0 upvotes · 0 comments

## Summary

An explainer on how cluster keys work in Snowflake and Databend, contrasting them with traditional user-defined partitions. Cluster keys improve physical data locality by grouping similar values into engine-managed micro-partitions (Snowflake) or Fuse blocks (Databend), which narrows Min/Max metadata ranges and enables more effective pruning during query execution. The piece covers why pruning degrades with overlapping ranges, what reclustering costs, how composite cluster keys behave, and when clustering is worth the maintenance overhead. It positions cluster keys as dynamic, engine-derived range partitioning rather than indexes or hard partitions, and previews a follow-up on choosing and ordering cluster key columns.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.databend.com/blog/category-engineering/cluster-key-pruning>

## Questions this post answers

### What is the difference between traditional table partitioning and Snowflake micro-partitions or Databend Fuse blocks?

Traditional partitioning requires users to define partition boundaries in advance (like monthly ranges), while micro-partitions and Fuse blocks are automatically created by the engine based on data volume and write batches. Traditional partitions are coarse and a partition can still contain many files or blocks; micro-partitions/blocks are finer-grained and rely on Min/Max metadata for pruning rather than explicit boundaries.

_daily.dev surfaces deep dives like this for engineers weighing partitioning strategies across warehouses._

### Why can't Min/Max pruning eliminate a block for an equality predicate like trace_id = 'trace_5000'?

Min/Max metadata only proves a value is absent when it falls outside a block's min/max range; it cannot confirm every value inside that range is actually present. So if trace_5000 falls within a block's min/max span but isn't guaranteed to exist there, the block must still be read. Databend addresses this by combining block-level Bloom filters with Min/Max pruning for some equality predicates.

_track query-pruning nuances like this on daily.dev when tuning warehouse performance._

### How does the cluster key maintenance model differ between Snowflake and Databend?

Snowflake relies primarily on Automatic Clustering for background maintenance and has deprecated Manual Reclustering, consuming server-side credits and storage costs that users can't directly control. Databend supports automatic clustering too, but also exposes explicit SQL controls like ALTER TABLE ... RECLUSTER with FINAL and WHERE options, letting teams limit reclustering scope, though this still consumes compute and incurs credits in Databend Cloud.

_compare managed versus SQL-controlled maintenance models on daily.dev before picking a warehouse._

## Similar posts on daily.dev

- [Databend Cluster Key Best Practices: Choosing Columns, Key Order, and Granularity](https://daily.dev/posts/databend-cluster-key-best-practices-choosing-columns-key-order-and-granularity-dbtxgdjlm) · Databend Blog · 0 upvotes · 0 comments
- [Data Sharding vs Data Partitioning: A Complete Guide for High-Performance Databases](https://daily.dev/posts/data-sharding-vs-data-partitioning-a-complete-guide-for-high-performance-databases-yufjm8g14) · C\# Corner · 1 upvotes · 0 comments
- [Database Partitioning: Types, Strategies, and When to Use Each](https://daily.dev/posts/database-partitioning-types-strategies-and-when-to-use-each-rmg9tahx4) · Last9 · 70 upvotes · 0 comments
- [Why Snowflake Is Becoming a Go-To Platform for Modern Data Engineering](https://daily.dev/posts/why-snowflake-is-becoming-a-go-to-platform-for-modern-data-engineering-rdzgvpyrv) · Medium · 0 upvotes · 0 comments
- [Debunking 8 data layout myths: why Liquid Clustering outperforms partitioning](https://daily.dev/posts/debunking-8-data-layout-myths-why-liquid-clustering-outperforms-partitioning-lxazrlipq) · databricks · 12 upvotes · 2 comments

---

Tags: [#snowflake](https://daily.dev/tags/snowflake), [#data-warehouse](https://daily.dev/tags/data-warehouse)

[View this post on daily.dev](https://daily.dev/posts/from-traditional-partitions-to-micro-partitions-how-snowflake-and-databend-reduce-data-scanning-1kozjn0l7)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"From Traditional Partitions to Micro-Partitions—How Snowflake and Databend Reduce Data Scanning","url":"https://daily.dev/posts/from-traditional-partitions-to-micro-partitions-how-snowflake-and-databend-reduce-data-scanning-1kozjn0l7","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/from-traditional-partitions-to-micro-partitions-how-snowflake-and-databend-reduce-data-scanning-1kozjn0l7"},"datePublished":"2026-08-20T04:07:40.204Z","dateModified":"2026-08-20T04:09:52.091Z","description":"An explainer on how cluster keys work in Snowflake and Databend, contrasting them with traditional user-defined partitions. Cluster keys improve physical data...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d3b82400ebe7b6327523f7f1ca5d2e4d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/d3b82400ebe7b6327523f7f1ca5d2e4d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Databend Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Databend Blog","logo":"https://media.daily.dev/image/upload/s--Vkqa36Ma--/f_auto,q_auto/v1786870423/logos/databend?_a=BAMAMicg0","url":"https://daily.dev/sources/databend"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/from-traditional-partitions-to-micro-partitions-how-snowflake-and-databend-reduce-data-scanning-1kozjn0l7","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"snowflake,data-warehouse","timeRequired":"PT13M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Databend Blog","item":"https://daily.dev/sources/databend"},{"@type":"ListItem","position":3,"name":"From Traditional Partitions to Micro-Partitions—How Snowflake and Databend Reduce Data Scanning"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/from-traditional-partitions-to-micro-partitions-how-snowflake-and-databend-reduce-data-scanning-1kozjn0l7#faq","mainEntity":[{"@type":"Question","name":"What is the difference between traditional table partitioning and Snowflake micro-partitions or Databend Fuse blocks?","acceptedAnswer":{"@type":"Answer","text":"Traditional partitioning requires users to define partition boundaries in advance (like monthly ranges), while micro-partitions and Fuse blocks are automatically created by the engine based on data volume and write batches. Traditional partitions are coarse and a partition can still contain many files or blocks; micro-partitions/blocks are finer-grained and rely on Min/Max metadata for pruning rather than explicit boundaries. daily.dev surfaces deep dives like this for engineers weighing partitioning strategies across warehouses."}},{"@type":"Question","name":"Why can't Min/Max pruning eliminate a block for an equality predicate like trace_id = 'trace_5000'?","acceptedAnswer":{"@type":"Answer","text":"Min/Max metadata only proves a value is absent when it falls outside a block's min/max range; it cannot confirm every value inside that range is actually present. So if trace_5000 falls within a block's min/max span but isn't guaranteed to exist there, the block must still be read. Databend addresses this by combining block-level Bloom filters with Min/Max pruning for some equality predicates. track query-pruning nuances like this on daily.dev when tuning warehouse performance."}},{"@type":"Question","name":"How does the cluster key maintenance model differ between Snowflake and Databend?","acceptedAnswer":{"@type":"Answer","text":"Snowflake relies primarily on Automatic Clustering for background maintenance and has deprecated Manual Reclustering, consuming server-side credits and storage costs that users can't directly control. Databend supports automatic clustering too, but also exposes explicit SQL controls like ALTER TABLE ... RECLUSTER with FINAL and WHERE options, letting teams limit reclustering scope, though this still consumes compute and incurs credits in Databend Cloud. compare managed versus SQL-controlled maintenance models on daily.dev before picking a warehouse."}}]}
```

