MySQL Forums
Forum List  »  Spanish

Re: Tablas Grandes
Posted by: Miguel Perez
Date: July 17, 2007 05:29AM

Primero con el DDL:

- En la definición de la tabla producto, te sobra la clave única en id; la clave primaria es precisamente eso.

- Veo que los IDs de todas las tablas son BIGINT; realmente vas a tener más de 4000 millones de ellos? Si no es así, es preferible que sean simplemente INTs.

- En la mayoría de los campos permites valores nulos. Asegúrate de que *realmente* los necesitas, de lo contrario es mejor que los campos sean NOT NULL. Considera 0, -1 o "" en vez de NULL, si sirve en tu problema.

- Verifica que los índices multivaluados que has definido en producto y tipoproducto son necesarios (para esta consulta no, pero quizás tengas otras en las que los aproveches, sólo verificarlo).


Ahora con la consulta en sí: A simple vista parece que hay poco que puedas hacer, porque simplemente estás sumando todos los valores. A MySQL no le queda otra que coger y leerse todo. En estos casos deberías considerar la posibilidad de utilizar tablas resumen: tablas donde vas guardando el acumulado en cada periodo, en vez de guardar las entradas y luego sumarlas bajo demanda. Las tablas resumen son incómodas porque hay que mantenerlas (sumar cuando ocurre algo, restar cuando se deshace, etc.), pero a partir de MySQL 5 tienes disparadores que te permitirán mantenerlas de forma más cómoda. (Y deberías estar usando MySQL 5; entre otras cosas es más rápido.) Incluso puede que no necesitaras la propia tabla estadisticas2002, ahorrándote millones de registros y gigas de espacio en disco.


Respecto a la configuración, y viendo que tu consulta es una sola y muy gorda sobre tablas MyISAM utilizando índices, lo que deberías hacer principalmente es maximizar el key_buffer_size.

Un saludo,

Miguel Pérez
Afina Sistemas - Partner de MySQL en España

Options: ReplyQuote


Subject
Views
Written By
Posted
3191
July 05, 2007 10:20AM
3292
July 05, 2007 10:45AM
Re: Tablas Grandes
2924
July 17, 2007 05:29AM
2409
August 01, 2007 05:51AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.