> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentation sur l’optimisation LowCardinality pour les colonnes de type chaîne

# LowCardinality(T)

Modifie la représentation interne d’autres types de données pour utiliser un encodage par dictionnaire.

<div id="syntax">
  ## Syntaxe
</div>

```sql theme={null}
LowCardinality(data_type)
```

**Paramètres**

* `data_type` — [String](/fr/reference/data-types/string), [FixedString](/fr/reference/data-types/fixedstring), [Date](/fr/reference/data-types/date), [DateTime](/fr/reference/data-types/datetime) et les nombres, à l’exception de [Decimal](/fr/reference/data-types/decimal). `LowCardinality` n’est pas efficace avec certains types de données ; voir la description du paramètre [allow\_suspicious\_low\_cardinality\_types](/fr/reference/settings/session-settings#allow_suspicious_low_cardinality_types).

<div id="description">
  ## Description
</div>

`LowCardinality` est une surcouche qui modifie la méthode de stockage des données ainsi que les règles de leur traitement. ClickHouse applique un [encodage par dictionnaire](https://en.wikipedia.org/wiki/Dictionary_coder) aux colonnes `LowCardinality`. L'utilisation de données encodées par dictionnaire améliore considérablement les performances des requêtes [SELECT](/fr/reference/statements/select/index) dans de nombreux cas d'usage.

L'efficacité du type de données `LowCardinality` dépend de la diversité des données. Si un dictionnaire contient moins de 10 000 valeurs distinctes, ClickHouse offre généralement une meilleure efficacité de lecture et de stockage des données. Si un dictionnaire contient plus de 100 000 valeurs distinctes, ClickHouse peut être moins performant qu'avec des types de données ordinaires.

Envisagez d'utiliser `LowCardinality` à la place de [Enum](/fr/reference/data-types/enum) lorsque vous travaillez avec des chaînes de caractères. `LowCardinality` offre davantage de flexibilité et présente souvent une efficacité équivalente, voire supérieure.

<div id="example">
  ## Exemple
</div>

Créez une table avec une colonne `LowCardinality` :

```sql theme={null}
CREATE TABLE lc_t
(
    `id` UInt16,
    `strings` LowCardinality(String)
)
ENGINE = MergeTree()
ORDER BY id
```

<div id="related-settings-and-functions">
  ## Paramètres et fonctions associés
</div>

Paramètres :

* [low\_cardinality\_max\_dictionary\_size](/fr/reference/settings/session-settings#low_cardinality_max_dictionary_size)
* [low\_cardinality\_use\_single\_dictionary\_for\_part](/fr/reference/settings/session-settings#low_cardinality_use_single_dictionary_for_part)
* [low\_cardinality\_allow\_in\_native\_format](/fr/reference/settings/session-settings#low_cardinality_allow_in_native_format)
* [allow\_suspicious\_low\_cardinality\_types](/fr/reference/settings/session-settings#allow_suspicious_low_cardinality_types)
* [output\_format\_arrow\_low\_cardinality\_as\_dictionary](/fr/reference/settings/formats#output_format_arrow_low_cardinality_as_dictionary)

Fonctions :

* [toLowCardinality](/fr/reference/functions/regular-functions/type-conversion-functions#toLowCardinality)

<div id="related-content">
  ## Contenu connexe
</div>

* Blog : [Optimiser ClickHouse avec des schémas et des codecs](https://clickhouse.com/blog/optimize-clickhouse-codecs-compression-schema)
* Blog : [Utiliser des séries temporelles dans ClickHouse](https://clickhouse.com/blog/working-with-time-series-data-and-functions-ClickHouse)
* [Optimisation de String (vidéo de la présentation en russe)](https://youtu.be/rqf-ILRgBdY?list=PL0Z2YDlm0b3iwXCpEFiOOYmwXzVmjJfEt). [Diapositives en anglais](https://github.com/ClickHouse/clickhouse-presentations/raw/master/meetup19/string_optimization.pdf)
