Todos los productos
Search
Centro de documentos

Lindorm:Varios índices de búsqueda para una sola tabla (vista previa pública)

Última actualización: Sep 06, 2026

Cuando una sola tabla ancha debe atender varios patrones de consulta y cada uno accede a distintas combinaciones de columnas, un único índice de búsqueda no cubre de forma eficiente todas las rutas de acceso. Los índices de búsqueda múltiples le permiten definir hasta cinco índices independientes en una tabla principal, donde cada uno abarca un conjunto distinto de columnas. Lindorm enruta automáticamente cada consulta al índice más adecuado.

Esta función se encuentra en vista previa pública. Para habilitarla, comuníquese con el soporte técnico de Lindorm en DingTalk (ID de grupo: s0s3eg3 ).

Requisitos previos

Antes de empezar, compruebe lo siguiente:

  • La versión del motor LindormTable es 2.8.2.3 o posterior.

  • La versión del motor Lindorm LTS es 3.8.12.5 o posterior.

Para comprobar o actualizar la versión del motor, consulte Minor version update.

Límites

  • Una tabla principal admite un máximo de 5 índices de búsqueda.

  • Todos los índices de búsqueda de una misma tabla principal deben tener nombres únicos. Estos nombres no pueden entrar en conflicto con otros tipos de índices de la misma tabla.

Crear varios índices de búsqueda

A continuación se explica cómo crear una tabla ancha, construir varios índices de búsqueda sobre ella, escribir datos y consultarlos mediante dichos índices.

Paso 1: Cree una tabla ancha

create table testTable (pk int, c1 int, c2 varchar, c3 long, primary key(pk));

Paso 2: Cree varios índices de búsqueda en la tabla

Las columnas y propiedades de los índices pueden coincidir entre distintos índices.

create index idx1 using search on testTable (c1,c2);
create index idx2 using search on testTable (c3);
create index idx3 using search on testTable (c1,c2,c3);

Paso 3: Escriba datos

Inserte o actualice filas en la tabla ancha. Los datos se sincronizan automáticamente con todos los índices de búsqueda.

upsert into testTable(pk,c1,c2,c3) values (1,1,'1',1);
upsert into testTable(pk,c1,c2,c3) values (2,2,'2',2);
upsert into testTable(pk,c1,c2,c3) values (3,3,'3',3);
upsert into testTable(pk,c1,c2,c3) values (4,4,'4',4);

Paso 4: Consulte los datos

Lindorm selecciona automáticamente un índice de búsqueda adecuado según las columnas de la consulta. Si varios índices cubren la misma consulta, se elige uno de ellos.

Consulta de las tres columnas: se selecciona idx3, ya que abarca c1, c2 y c3:

select * from testTable where c1>0 and c2>'0' and c3>0;

Consulta de dos columnas: se selecciona idx1 o idx3, dado que ambos abarcan c1 y c2:

select * from testTable where c1>0 and c2>'0';

Consulta de una columna: se selecciona idx2 o idx3, porque ambos abarcan c3:

select * from testTable where c3>0;

Paso 5: Especifique un índice de forma explícita (opcional)

Use la sintaxis HINT para forzar el uso de un índice específico en una consulta y anular la selección automática:

select /*+ _l_force_index_('idx1') */ * from testTable where c1>0 and c2>'0';

Paso 6: Gestione el estado de los índices

Use ALTER INDEX para controlar de manera independiente el estado de cada índice:

alter index idx1 on testTable inactive;
alter index idx1 on testTable disabled;

En la siguiente tabla se describe cada valor de estado y su efecto en las consultas y la indexación:

Estado

Consultable

Datos indexados

Notas

ACTIVE

Sí

Sí

Estado de operación predeterminado.

INACTIVE

No

Sí

Pausado para consultas, pero sigue indexando las escrituras.

DISABLED

No

No

Detiene la indexación de escrituras. No se puede cambiar a otro estado; ejecute el comando REBUILD para volver a habilitar el índice.