# Uso de índices primarios y secundarios

InfluxDB utiliza diferentes enfoques para la indexación en sus versiones 1.x y 2.x, centrándose en tags y measurement como elementos clave para optimizar consultas.

### Índices en InfluxDB 1.x

1. **Estructura primaria de indexación**:
   * Los datos se organizan en **series temporales** identificadas por:
     * *Measurement* (tabla)
     * *Tags* (clave-valor indexados)
     * *Timestamp*.
   * No introduce índices secundarios adicionales.
   * Ejemplo de almacenamiento:

     <pre data-title="text" data-overflow="wrap"><code>ambiente,sensor_id=sensor01,ubicacion=ubicacionA0 temperatura=23.4,humedad=45.8,co2=600 1718440500000000000
     </code></pre>

     Cada combinación única de tags genera una serie temporal independiente .
2. **Características clave**:
   * **Tags indexados**: Permiten búsquedas rápidas usando WHERE en consultas.
   * **Fields no indexados**: Pueden contener valores infinitos ya que no están indexados.
   * Almacenamiento optimizado con el motor TSM (Time-Structured Merge Tree) para alta velocidad de ingesta.

### Índices en InfluxDB 2.x

1. **Mantenimiento de la estructura básica**:
   * Conserva el mismo modelo de datos que v1.x: *measurements*, *tags* y *timestamp*.
   * No introduce índices secundarios adicionales.
2. **Diferencias operativas**:
   * Cambios terminológicos: *buckets* en lugar de *databases con diferentes políticas de retención*.
   * Adopción del lenguaje Flux para consultas, aunque mantiene compatibilidad con InfluxQL.
   * Sistema de archivos interno similar, donde cada field se almacena por separado, requiriendo operaciones `pivot` para reconstruir tablas.

### Limitaciones comunes en ambas versiones

* **Ausencia de índices secundarios**: No es posible crear índices personalizados en campos específicos fuera del esquema tag-timestamp.
* **Impacto de la cardinalidad**: Un número elevado de valores únicos en tags puede reducir el rendimiento, especialmente en v1.x.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://darioaplicano.gitbook.io/influxdb2.x/sesion-6/guion-de-la-sesion/documentacion/estrategias-de-indexacion-y-almacenamiento-optimizado/uso-de-indices-primarios-y-secundarios.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
