En MySQL, cuando creo una clave primaria compuesta, por ejemplo con las columnas X, Y, Z
, las tres columnas se convierten en índices automáticamente. ¿Pasa lo mismo con Postgres?clave primaria compuesta de PostgreSQL
Respuesta
Si crea una clave primaria compuesta, en (x, y, z)
, PostgreSQL implementa esto con la ayuda de un índice ÚNICO de varias columnas en (x, y, z)
. Además, las tres columnas tienen que ser NOT NULL
, por supuesto, que es la principal diferencia entre un PRIMARY KEY
y un UNIQUE INDEX
.
Además de las restricciones evidentes en los datos, el multi-column index también tiene un efecto algo diferente en el rendimiento de las consultas de tres índices individuales en x
, y
y z
.
Tuvimos una discusión muy minuciosa sobre eso recientemente on dba.SE in this related question. Con ejemplos, puntos de referencia, discusión y perspectivas para la próxima función de index-only scans in version 9.2.
En particular, una clave principal en (x, y, z)
será acelerar las consultas con las condiciones de x
, (x,y)
o (x,y,z)
de manera óptima. También ayudará con consultas en y
, z
, (y,z)
o (x,z)
pero en mucha menor medida.
Si necesita acelerar las consultas en las últimas combinaciones, puede crear uno o más índices adicionales.
Yes:
PostgreSQL crea automáticamente un índice único cuando se define una restricción única o clave principal de una tabla. El índice cubre las columnas que conforman la clave primaria o la restricción única (un índice de varias columnas, si corresponde), y es el mecanismo que impone la restricción.
Creo que la pregunta era si cada columna tiene su propio índice. –
De acuerdo. La pregunta no es si 1 índice de columnas múltiples se crea automáticamente, pero si se crean 3 índices de columnas individuales. Y la respuesta es no. Su respuesta sigue siendo relevante ya que proporciona información suplementaria, después de ser editada, por supuesto. De hecho, la respuesta de @dondi-michael-stroma es más relevante que la que ha elegido el solicitante original. – Chucky
No, obtiene un índice para la clave principal de tres columnas.
- 1. clave primaria compuesta
- 2. Usar clave primaria compuesta como clave externa
- 3. clave primaria compuesta e índices adicionales
- 4. ¿Falsifica una clave primaria compuesta? Rails
- 5. Compuesto/clave primaria/única compuesta con Django
- 6. Clave primaria compuesta, clave externa. ¿Referencia a objeto o clave?
- 7. Primaria compuesta y cardinalidad
- 8. Ventajas y desventajas de tener una clave primaria compuesta ...
- 9. cómo crear una clave primaria compuesta (anotación de persistencia java)
- 10. ¿Cómo creo una clave primaria compuesta usando GORM?
- 11. ¿Cómo almacena SQL Server una clave primaria compuesta?
- 12. Cómo agregar una clave primaria compuesta a la tabla
- 13. ¿Cómo puedo definir una clave primaria compuesta en SQL?
- 14. Cómo crear una clave primaria compuesta en SQL Server 2008
- 15. ALTER TABLE para agregar una clave primaria compuesta
- 16. ¿Cuáles son los inconvenientes de usar una clave primaria compuesta/compuesta?
- 17. Límite de longitud de clave primaria de PostgreSQL
- 18. Clave externa de tabla SQL que es parte de una clave primaria compuesta
- 19. Restablecer la clave primaria de PostgreSQL a 1
- 20. DONDE col1, col2 EN (...) [sub consulta SQL utilizando la clave primaria compuesta]
- 21. clave compuesta de hibernación
- 22. clave primaria versus clave
- 23. Aumento automático de la clave compuesta InnoDB
- 24. Pregunta principal compuesta/clave externa Oracle pregunta
- 25. Modelo de recurso de Magento para la tabla con clave primaria compuesta
- 26. ¿Cómo mapeo primero una clave primaria compuesta en el código de Entity Framework 4?
- 27. ¿Cómo alterar la longitud de varchar en la clave primaria compuesta?
- 28. SQL Server 2008 Búsqueda de texto completo en una tabla con una clave primaria compuesta
- 29. Clave externa para la clave compuesta
- 30. cómo agregar una nueva columna a la clave primaria compuesta existente
¿Quiere decir que MySQL crea ** tres ** * índices *? Suena terriblemente extraño –