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