2009-12-10 24 views
10

Puede parecer una pregunta ingenua, pero me pregunto acerca de la relación entre las claves primarias y los índices en las bases de datos SQL más comunes.Acerca del índice y la clave principal en SQL?

¿Es una regla estándar que una base de datos SQL cree automáticamente un índice para cada clave principal?

Lo estoy preguntando porque estoy diseñando un modelo con Django y me pregunto si es redundante configurar primary_key=True y db_index=True.

Respuesta

8

Sí, puede suponer que es una regla estándar que los RDBMS requieren un índice para la clave primaria.

Principalmente, el motor de base de datos necesita el índice para reforzar la exclusividad de los datos para la clave principal, y para hacerlo rápidamente se necesita un índice.

3

En el servidor MSSQL, la creación de una clave principal normalmente creará un índice agrupado por defecto.

5

Tener un vistazo a este

Si una restricción PRIMARY KEY se creado para una tabla de base de datos y no existe actualmente índice agrupado para esa tabla, SQL Server de forma automática crea un índice agrupado en la clave primaria

de SQL Server Index Tuning

2

En MySQL, la clave principal es un tipo de índice (índice único particular).

2

En la mayoría de los RDBMS tiende a darse el caso de que una clave principal se implemente como un índice.

Esto no es un requisito per se, sino una optimización (más o menos) obvia.

Cuestiones relacionadas