PHP-Hispano.net Comunidad hispana de desarrollo web

Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?

27 usuarios Online (0)

Darse de alta en la web | Recuperar password   
Inicio / Foros / MySQL / problema

problema [SOLUCIONADO]

3 respuestas 659 visitas Categoría MySQL

problema

Avatar de fdo01
* * * * * * *

(Nivel 2 - 111 posts)

#0 Offline fdo01 Usuario 20 nov 09
saludos amigos!!

mi situacion es la siguiente:

tengo una base de datos con miles y miles de registros.....al año pueden llegar a ser millones

que puedo hacer para al momento de buscar datos mediante una consulta, no tarde demasiado

no puedo borrar los registros que tengo por que seran utilizados para su analisis cada 5 y 10 años

despues de los 10 años los puedo vaciar pero mientras que me sugieren que puedo hacer para mejorar

la efectividad de la db.

SOLUCIÓN PuntuaciónPuntuaciónPuntuaciónRe: problema

Avatar de jurena
* * * * * * *

(Nivel 7 - 1622 posts)

#1 Offline jurena Moderador 21 nov 09
Una buena estructura de base de datos con uso adecuado de tipos de campos, correcta normalización, uso de índices, consultas eficientes. Para ayudarte, tendrías que indicarnos qué tablas, tipos de campos, relaciones, uso de índices, consultas más complejas, etc. TE aconsejo que leas el artículo de bases de datos de Eloy en nuestro foro. También puedes mirar tips como estos sobre consultas:
http://www.baluart.net/articulo/10-tips-para-optimizar-consultas-mysql
Y eso sin contar con el tuning de los servidores.

Re: problema

Avatar de Eloy8857
* * * * * * *

(Nivel 4 - 445 posts)

#2 Offline Eloy8857 Usuario 23 nov 09
En esos tips hay algo importante, y es que los campos con tipo de dato de longitud fija son siempre más rápidos. Especialmente en un índice sí se recomienda encarecidamente que los datos no tengan una longitud variable. En tablas pequeñas, que ni siquiera llegan al millón de registros y de no más de 10 campos, no creo que sea un problema utilizar los tipos VAR*, pero del mismo modo al ser pequeñas el impacto en espacio es menor.

En mi trabajo uso una tabla monstruosa que se amplia con unos 200 mil registros al día, y que ya tiene 62 millones de registros. Consultarla no es lento siempre que en el WHERE filtres por campos del índice (0.04 segundos * consulta o así), pero si el campo no está indizado es fácil que sobrepase el minuto en obtenerse el resultado... además la tabla está en constante inserción.

Una vez revisado el diseño, usa el EXPLAIN para ver cómo se resuelve la consulta y tendrás un punto de partida si la cosa va lenta. Mira por tu cuenta y si tienes dudas aquí nos tienes ;)

Saludos.

Restless Souls Online: se viene un gran MMORPG

Agradecimiento

Avatar de fdo01
* * * * * * *

(Nivel 2 - 111 posts)

#3 Offline fdo01 Usuario 23 nov 09
Gracias por sus comentarios y sugerencias, he puesto una longitud definida en cada campo y he asignado
var a todos, en el codigo php valide y a su vez tb puse el onkeypress para evitar que pongan otro tipo
de caracteres.
las consultas por el momento me han funcionado muy bien, tengo un aprox de 700 mil registros en este momento y la consulta la realizo en 0.02 segundos, espero que con el tiempo no afecte demasiado,
que tanto afecta a la consulta mi procesador y mi memoria ram?

saludos Eloy y jurena!

Responder mensaje

Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

php-hispano.net 2002 - 2010 | XHTML 1.0
Datos Legales | Webmaster