> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/server-usage/partitioning-tables/partitioning-types/linear-key-partitioning-type.md).

# LINEAR KEY Partitioning Type

## Syntax

{% tabs %}
{% tab title="Current" %}

```bnf
PARTITION BY LINEAR KEY [ALGORITHM={MYSQL51|MYSQL55|BASE31|CRC32C|XXH32|XXH3}]
([column_names])
[PARTITIONS (number_of_partitions)]
```

For a description of the different `ALGORITHM` types, see [KEY Partitioning](/docs/server/server-usage/partitioning-tables/partitioning-types/key-partitioning-type.md).
{% endtab %}

{% tab title="< 12.3" %}

```sql
PARTITION BY LINEAR KEY ([column_names])
[PARTITIONS (number_of_partitions)]
```

{% endtab %}
{% endtabs %}

## Description

`LINEAR KEY` partitioning is a form of [partitioning](/docs/server/server-usage/partitioning-tables.md), similar to [KEY partitioning](/docs/server/server-usage/partitioning-tables/partitioning-types/key-partitioning-type.md).

`LINEAR KEY` partitioning makes use of a powers-of-two algorithm, while `KEY` partitioning uses modulo arithmetic to determine the partition number.

Adding, dropping, merging and splitting partitions is much faster than with the [KEY partitioning type](/docs/server/server-usage/partitioning-tables/partitioning-types/key-partitioning-type.md); however, data is less likely to be evenly distributed over the partitions.

## Example

```sql
CREATE OR REPLACE TABLE t1 (v1 INT)
  PARTITION BY LINEAR KEY (v1)
  PARTITIONS 2;
```

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formId="4316" %}
