Pregunta

Lo que quiero decir es:? ¿Una tabla con 20 columnas beneficiarse más de la indexación de un determinado campo (uno que se utiliza en las consultas de búsqueda más o menos) de una tabla que tiene sólo 4 columnas

También: ¿Cuál es el daño en la adición de campos de índice para que yo no busco con mucho, pero podría más adelante en el futuro? ¿Hay una negativa a la adición de índices? ¿Es sólo el tamaño que ocupa en el disco, o puede hacer que las cosas funcionen más lentamente añadir índices innecesarios?

extraído de un comentario

Estoy usando Postgres (última versión) y tengo una tabla que voy a estar haciendo una gran cantidad de consultas de tipo LIKE, etc, pero los valores, sin duda, va a cambiar con frecuencia, ya que mis clientes tienen acceso a la ABM. En caso de que pueda la idea de índices? ¿Son sólo un dolor de cabeza?

¿Fue útil?

Solución

  

¿Tiene una tabla con 20 columnas beneficiarse más de la indexación de un determinado campo (uno que se utiliza en las consultas de búsqueda más o menos) de una tabla que tiene sólo 4 columnas?

No, número de columnas en una tabla no tiene relación con los beneficios de tener un índice.

Un índice es únicamente en los valores de la columna (s) especificado; es la frecuencia de los valores que tendrán un impacto en la cantidad de beneficios a sus consultas van a ver. Por ejemplo, una columna que contiene un valor booleano es una mala elección para la indexación, porque es una posibilidad de 50/50 el valor será uno u otro valor. En una división de 50/50 sobre todas las filas, el índice no estrechar la búsqueda de una fila en particular.

  

¿Cuál es el daño en la adición de campos de índice para que yo no busco con mucho, pero podría más adelante en el futuro?

Índices solamente aceleran la recuperación de datos cuando se pueden utilizar, pero un impacto negativo en la velocidad de insertar / actualizar / borrar declaraciones. Los índices también requieren mantenimiento para mantener su valor.

Otros consejos

Si usted está haciendo, como consultas de usted puede encontrar que los índices no no son de mucha ayuda de todos modos. Mientras que un índice podría mejorar esta consulta ...

select * from t23
where whatever like 'SOMETHING%'
/

... es poco probable que un índice le ayudará con cualquiera de estas preguntas ...

select * from t23
where whatever like '%SOMETHING%'
/

select * from t23
where whatever like '%SOMETHING'
/

Si tiene campos de texto libre y los usuarios necesitan coincidencia aproximada a continuación, usted debe buscar en la funcionalidad de texto completo de Postgres. Este emplea el operador partido en lugar de LIKE y que requiere un tipo de índice especial. obtener más información.

Hay un gotcha, que es que los índices de texto completo son más complicados que los normales, y la las decisiones de diseño relacionadas no son simples . También algunas implementaciones requieren actividades de mantenimiento adicionales .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top