Re: [PHP-ES] [MYSQL] Base de datos grande

From: Angel Alberto BRiceño Obregón ( angel .en. peruviansoft.com)
Date: Wed Apr 28 2004 - 19:42:41 CEST


Hola,
Generalmente hay dos tipos de base de datos,

Una en produccion (que es de mision critica), y otra historica (donde se
guardan datos historicos de anios atras.

Generalmente los procesos corporativos (llamese empresariales) se usan
por periodos (mensuales) y esta a su vez se guardan una vez terminado el
anio en una base de datos historico.

Lo mencionado lineas arriba es un comentario muy resumido de base de
datos corporativos.

Hace buen tiempo yo tenia en MySQL 1 millon 200 mil registro sobre
personas afiliadas a un seguro medico. usando SELECT * from tabla where
<condicion> , tenia los datos que queria pero la lentitud era demasiada.
Esto se arreglo con los indices que puse a la base de datos, claro que
tuve que asignarle muchas llaves para los campo que necesitaba
condicionar yla velocidad era superior.

Separar en un historico y luego juntar no creo que sea tan dificil si es
que usas la misma estructura de la base de datos, podrias crearte una
base de datos principal llamado maindb y alli crearte una tablita con
los campo NomDataBase, IpHost, AnioIni, AnioFin. Alli podrias
especificar las base de datos historicas. Que generalmente reportes como
este demoran en procesar y es recomendable utilizar otra maquina para
ello. En cuanto a la busqueda solo tienes que saber el rango de fecha
que se pide. Se que es un poco tedioso pero te dara muchas
satisfacciones a la hora de generar reportes. Asi mismo podras inclusive
tener copias de seguridad de cada anio.

Tambien trata de optimizar las condiciones de busqueda del SELECT para
que no tengas mucho problemas.

Si alquien sabe como hacer DataWarehousing con MySQL, o algo similas a
DataMart, seria tan amable de comentar?.

Espero que lo dicho arriba te de al menos alguna idea.

Atentamente,

On Wed, 2004-04-28 at 11:10, Ricardo - Eureka! wrote:
> On Wed, Apr 28, 2004 at 09:58:08AM -0600, informacion wrote:
> > Hola,
> >
> > La cuestion es que tengo una base de datos que tiene una tabla con 400.000
> > registros.
> >
> > Se hace bastante lenta la busqueda, no puedo usar un campo llave ya que la
> > busqueda depende de bastantes factores, estaba pensando en separar todos los
> > registros por año y guardalo en tablas diferentes, pero por otra parte la
> > busqueda seria un lio, ya que tendria que combinar las tablas para hacer una
> > busqueda general.
> >
> > Alguna idea de como manejar tantos registros, y acelerar la busqueda?
>
> usa postgreSQL

PeruvianSoft.Com

Angel Alberto Briceño Obregón
Programador PHP - Soporte en Linux
angel .en. peruviansoft.com
(51) 1-9-717-0879
Lima - Perú




This archive was generated by hypermail 2.1.7 : Fri May 14 2004 - 16:04:51 CEST