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

Cuestiones sobre optimización

Estas en el tema de Cuestiones sobre optimización en el foro de Mysql en Foros del Web. Hola foro: Estoy con un proyecto en PHP que trabaja con bases de datos MySQL... y ciertamente casi que no tengo idea de rendimiento en ...
  #1 (permalink)  
Antiguo 21/08/2008, 08:10
 
Fecha de Ingreso: junio-2008
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Cuestiones sobre optimización

Hola foro:

Estoy con un proyecto en PHP que trabaja con bases de datos MySQL... y ciertamente casi que no tengo idea de rendimiento en cuanto a bases de datos.

Por ejemplo, cuando creo una tabla con un campo ID, lo creo con auto_increment y como key, pero no sé si debería de ponerlo también (o si realmente se puede) como unique key, ya que va a ser la única en toda la tabla.

Por otra parte, mi otra cuestión viene con los índices. Siempre que creo una tabla le pongo índices a todos los campos, y es absurdo, pues creo que si se coloca índice a todo campo de la tabla es lo mismo que si no tuviera ninguno, porque están al mismo nivel. Necesito un poco de guía acerca de esto y cómo utilizarlos correctamente.

Muchas gracias, y pido perdón si alguien había planteado antes esta consulta...

Saludos!
  #2 (permalink)  
Antiguo 21/08/2008, 08:32
Avatar de Lord Kazuky  
Fecha de Ingreso: junio-2006
Ubicación: 7F.00.00.01
Mensajes: 123
Antigüedad: 18 años, 5 meses
Puntos: 5
Respuesta: Cuestiones sobre optimización

Saludos!

La teoria dice que al menos cada tabla deberia tener una llave primaria, que es un campo que puede identificar rapidamente a cualquier registro.

En MySQL hay que especificarlo como PRIMARY KEY, y el motor asume ya que es un indice unico.

Ese campo que indicas 'ID' es candidato a ser la llave primaria. ya que es Auto Incremental es evidente que no va a tener registros repetidos.

Ahora en cuanto a los indices es algo que se debe acomodar de acuerdo a algunas restricciones en los campos. (Por ejemplo si hay alguno que pueda ser unico). Y tambien es algo que se debe acomodar segun las experiencias en las consultas a la Base de Datos.

Es decir si alguna consulta SQL a alguna(s) tabla(s) esta tomando mucho tiempo, entonces si se deben pensar en los Indices.

Por lo general los indices se pueden identificar en las consultas SQL, en las condiciones.

ej:

SELECT A.*, B.*
FROM A, B
WHERE A.id = B.id
AND B.parametro > 2

En esta consulta los candidatos para ser indices son las columnas 'id' y 'parametro'.
Si la columna 'id' es una llave primaria, esta ya es un indice.

Por lo general utilizar indices sobre campos numericos o tipos de datos sencillos.

Piensa en los Indices como en los de una guia telefonica o Directorio Telefonico. Ahi tu encuentras los telefonos más rapido gracias a que hay un indice alfabetico (A-Z)

Pero como te digo solo colocar indices cuando sea algo realmente necesario. Ya que colocar indices innecesarios puede hacer el efecto contrario y hacer más lentas tus consultas.

Te dejo ademas dos grandes Links que te serviran demasiado con MySQL:

Curso MySQL:
http://mysql.conclase.net/curso/index.php

Manual MySQL Español:
http://dev.mysql.com/doc/refman/5.0/es/index.html

Saludos!
__________________
Saludos.
"Cualquier tonto puede escribir código que un computador entiende. Los buenos programadores escriben código que los humanos pueden entender. ;)"
  #3 (permalink)  
Antiguo 21/08/2008, 08:39
 
Fecha de Ingreso: junio-2008
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Cuestiones sobre optimización

Me leeré las guías para no hacer preguntas tan precipitadas... ¡¡muchísimas gracias!! Me ha servido realmente de mucha ayuda

Saludos!!
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 22:12.