Ver Mensaje Individual
  #6 (permalink)  
Antiguo 25/02/2008, 02:28
Avatar de Darkot
Darkot
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla, España
Mensajes: 5
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Rendimiento Query's MySQL

Con campos mas usado me refiero ha... los campos por los que realizas consulatas (los que pones en los where ) y nos son parte de la clave. En mi web tengo un codigo de usuario que es la clave de la tabla pero tengo un indice creado en ella para el campo en el que guardo el nombre de usuario porque realizo muchas consultas atraves de el, por ejemplo al dar de alta un usuario debo comprobar antes que no exista uno con el mismo nombre de usuario(el mismo nick, claro. por supuesto que puede haber 2 pepes XD) y esa busqueda es de logica que este acelerado con un indice.

Los indices funcionan para Insert, updates, deletes y lo ke se te ocurra.. Si estas trabajando con el MyAdmin es muy facil crear los indices sino, se realiza con la instruccion "create Index".

Por cierto eso que haces de actualizar todos los campos aunque solo vayas a cambiar el valor de uno de ellos esta muy,muy,muy mal. No lo hagas, entre algunos de los motivos estan esos:

1. Crea basura en memoria quue te cagas...
2. Imaginate que hay un error y cambias uno de los campos que no debias cambiar :S...pero imaginte que uno de los campos que cambias es una clave ajena de otra tabla...se te puede ir toda la estructura de la base de datos a la m*****

3. Es mucho mas costoso para el sistema actualizar todos los campos.



Aqui te dejo un ejemplo de como crear una tabla con indices:

Código:
PRIMARY KEY (nombre_columna_1 [,nombre_columna2...])UNIQUE 
INDEX nombre_indice (columna_indexada1 [,columna_indexada2 ...])
INDEX nombre_indice2(columna_indexada1 [,columna_indexada2...])
Y aki una update que no tiene porque afectar a todoas los campos:

Código:
update into TABLA where CONDICION set(campo1 [, ...] ) values (nuevo_valor_campo1 [, ...] ) ;


Saludos.


PD: Perdon por tardar tanto en contestar