Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Diferencia entre index y primary key

Estas en el tema de Diferencia entre index y primary key en el foro de Bases de Datos General en Foros del Web. Pues eso que cual es la diferencia entre que una celda de una tabla mysql sea index o primary key Gracias....
  #1 (permalink)  
Antiguo 08/02/2003, 04:52
 
Fecha de Ingreso: noviembre-2001
Ubicación: Pamplona - Marbella (Spain)
Mensajes: 298
Antigüedad: 22 años, 5 meses
Puntos: 0
Diferencia entre index y primary key

Pues eso que cual es la diferencia entre que una celda de una tabla mysql sea index o primary key


Gracias.
__________________
SimDalom.com ¿Cómunicación Multimedia? Nosotros nos encargamos de eso, y tú... preocupate de lo importante
  #2 (permalink)  
Antiguo 08/02/2003, 10:44
 
Fecha de Ingreso: noviembre-2001
Ubicación: Pamplona - Marbella (Spain)
Mensajes: 298
Antigüedad: 22 años, 5 meses
Puntos: 0
Agradecería con toda el alma una respuesta eh??
__________________
SimDalom.com ¿Cómunicación Multimedia? Nosotros nos encargamos de eso, y tú... preocupate de lo importante
  #3 (permalink)  
Antiguo 08/02/2003, 15:43
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 22 años, 4 meses
Puntos: 1
Primary Key es el campo identificador de una tabla o mejor dicho de un registro. El Index te sirve para "encontrar" mas rapido un registro al ocuparlo mucho como parametro de búsqueda.
  #4 (permalink)  
Antiguo 19/07/2009, 18:57
 
Fecha de Ingreso: noviembre-2008
Mensajes: 15
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Diferencia entre index y primary key

Yo también tengo esa duda, por favor podrían poner un ejempolo en que momento o como usan los índices.



------------------------------------------------------------------------
El conocimiento es de todos
  #5 (permalink)  
Antiguo 20/07/2009, 07:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Diferencia entre index y primary key

A ver...

PRIMARY KEY solo hay una por tabla, puede ser simple o compuesta, simple cuando esta formada por un solo campo y compuesta cuando lo es de varios... En ese campo o conjunto de campos tiene que tener un valor que no se repetirà en ningun otro registro de la tabla... el motor de bases de datos crea un indice único sobre la primary key.


INDICES pueden haber muchos en una misma tabla, pueden ser unicos o no, si son unicos son PRIMARY KEY alternativas. Totdos sirven para buscar mas rápido los registros....

Quim
  #6 (permalink)  
Antiguo 21/07/2009, 06:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Diferencia entre index y primary key

Como se usan los índices.... no he puesto nada al respecto completo la respuesta.


En principio el motor de bbdd y su optimizador de consultas usará los índices que crea mas convenientes en función de la consulta y de los índices que tenga creados, por tanto que no se indique nada no implica que no se usen los índices. Sin embargo en las ocasiones en que no se obtiene un buen rendimiento existe la posibilidad de "ayudar" al optimizador indicando que índices usar, se estará forzando el uso del índice aquí tenéis el link al manual al respecto 12.2.8.2. Index Hint Syntax.

Todos los motores tienen en mayor o menor grado instrucciones para pedir que el motor te muestre como ha ejecutado una consulta, en mysql es 12.3.2. EXPLAIN Syntax con esta instrucción se puede ver que índices ha usado, al menos en ORACLE (alli se llama EXPLAIN PLAN). Analizando la información que da este tipo de instrucciones se puede modificar las sentencia de query llegando a obtener mejoras de rendimiento sorprendentes. En el caso de MySql la información es bastante pobre.

La optimización de la elección de que índices crear depende mucho de el tipo de consultas a realizar y de la dispersión de los datos.

Tipo de consultas, ejemplo si se va a consultar los datos por fechas pues será muy conveniente tener creado un índice, que no podrá ser único, sobre el campo donde se guarda la fecha....

Un campo bolean (verdadero/falso) como mucho va a dividir los datos en dos grupos, el conocimiento de los datos nos debe decir si será de utilidad crear un índice sobre un campo de este tipo...
imaginemos que el 90% los registros son verdaderos y que solo vamos a hacer consultas sobre los falsos, en este caso el índice podría ayudar ya que limitara la búsqueda en un 10% de los registros, en cambio si vamos a consultar sobre los verdaderos no servirá de nada puesto que solo discrimina un 10% de registros.

Siguiendo con la teoría la elección del tipo de índice, tabla hash o btree..., también dependerá de la dispersión de los datos, de numero de repeticiones de los valores etc donde un tipo de índice será más eficiente que otro por su estructura interna.... la teoría es larga y a mi entender apasionante.

Uffff que rollo he soltado!!!!


Quim

Última edición por quimfv; 21/07/2009 a las 06:31
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:28.