Re: [pgsql-es-ayuda] Tamaño de base de datos

From: Francisco Olarte <folarte(at)peoplecall(dot)com>
To: Edwin De La Cruz <edwinspire(at)gmail(dot)com>
Cc: Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Tamaño de base de datos
Date: 2016-03-12 18:50:55
Message-ID: CA+bJJby=M+D3W2aHWthuhAwNAPJsom3wZghAhD108iJyxK+XCg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas tardes:

2016-03-12 15:00 GMT+01:00 Edwin De La Cruz <edwinspire(at)gmail(dot)com>:
> Estimados. Saludos cordiales.
> Tengo una consulta un poco básica, en mi servidor tengo una base de datos
> con más o menos unos 500 millones de registros con tablas particionadas por
> meses y va llegando el tamaño a los 70 gigas.

Dado que parece que sabes como sacarlo, iria bien que indicases
cuantos registros por particion tipica, y el tamaño de una con sus
indices, siempre es mas facil......

> Pero cuando saco respaldo no supera los 5 gigas.

... asi como que comando usas para el respaldo ( e iria bien si
pudieras hacerlo de una sola particion, la que selecciones como
tipica, y mirases el tamaño de solo esa ). Es normal que las tablas
ocupen menos al volcarlas ( ya que aunque algunos campos perversos
crecen al pasarlos a textos muchos disminuyen, porque la
representacion en disco esta pensada para ser actualizable y muybien
delimitada, no super compacta ) y que suelen comprimirse en stream (
todo el volcado de golpe, lo que hace que algunos se compriman
fantasticamente ).

> Como puede ser eso, seguro hay algún tipo de compresión
> pero como puedo hacer para que mi tamaño de base de datos se comprima?
> Los campos de datos tipo text son pocos y la mayoría no superan los 300
> caracteres, exepto un campo que es tipo text con textos que pueden ser
> grandes, más de 1000 caracteres, hay alguna forma de comprimir sólo ese
> campo o el texto antes de insertarl0?

Puedes hacer cosas con la tabla, pero sin saber la estructura total
puede ser peor el remedio. Supongo que no tendras campos tipo CHAR(n)
en lugar de VARCHAR(n) ( eso te mata, mira
http://www.postgresql.org/docs/9.5/static/datatype-character.html ,
"The storage requirement for a short string (up to 126 bytes) is 1
byte plus the actual string, which includes the space padding in the
case of character" ). Por otro lado supongo que no tendras problemas
de tabla con mucho traqueteo y filas muertas ( eso lo sabras por tu
patron de uso, y si la carga te lo permite puedes hacer un vacuum full
en una particion antigua, o copiar la tabla a una nueva sin indices
para verificarlo ).

> Posibkemente me digan que quizá los índices son muy grandes, pero no, el más
> grande no supera un giga.

¿ Pero cuantos indices tienes por particion ? ( de ahi la pregunta de arriba ).

> Son algunas preguntas y espero que me puedan orientar al respecto.

Ahi te van algunas mas, y alguna indicacion que puede ayudarte.

Franciso Olarte.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2016-03-13 21:58:13 Re: consulta reinicia el motor de pgsql 9.5.1
Previous Message Álvaro Hernández Tortosa 2016-03-12 18:44:49 Re: Tamaño de base de datos