una soporta segundo rapida por optimizar mas lentas lenta hacer cuello cuantas consultas consulta como botella agilizar mysql sqlite sqlite3

soporta - optimizar consultas mysql explain



Tabla SQL con entrada de "lista" vs tabla SQL con una fila para cada entrada (1)

Tengo una tabla Sqlite donde cada fila tiene la forma de:

value, "a,b,c,d,e,f,g,h,i,j", value3, value4

Donde mis consultas buscan un emparejamiento de valor, %b% usando LIKE . ¿Es más eficiente en términos de tiempo de consulta tener una tabla en la que cada fila sea una permutación:

value, a, value3, value4 ... value, j, value3, value4

Para que mis consultas sean ahora de valor, b usando el operador = esta vez.

Como nota, el caso de uso que me interesa tiene ~ 10,000 filas actualmente donde cada elemento de "lista" tiene un promedio de 8 entradas. Sqlite tanto Sqlite como MySQL porque tengo un problema similar tanto para un db con MySQL como para Sqlite .


Donde mis consultas buscan un emparejamiento de valor,% b% usando LIKE. ¿Es más eficiente en términos de tiempo de consulta tener una tabla en la que cada fila sea una permutación:

Definitivamente. Porque las consultas de tipo LIKE ''% something%'' no pueden usar índices . Entonces, las búsquedas van a ser muy lentas. Si eso no es suficiente, está utilizando más o menos un anti patrón RDBMS. más detalles aquí: ¿Es realmente tan malo almacenar una lista delimitada en una columna de base de datos?

una vez que divida su columna ''CSV'' en columnas separadas, puede llevarla aún más lejos normalizando la base de datos.