Particionar tablas en postgre

From: Alfredo Rico <alfredorico(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Particionar tablas en postgre
Date: 2005-09-20 18:59:25
Message-ID: 89cc056d050920115947e3f6a0@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola amigos reciban un cordial saludo deseando que se
encuentren bien.

En primer lugar trabajo en una empresa donde utilizan
bases de datos ORACLE y existen tablas que alcanzan a
los 3.500.000 de registros (y hasta los superan).

En este momento existen una serie de proyectos de
software a desarrollar en donde se estima que la
cantidad de registros de algunas tablas también
llegarán a la cantidad mencionada.

En ORACLE para manejar de forma eficiente esta
situación, se efectúan particiones de tablas.

Cito el fragmento de un mensaje extraido del foro
http://internet.todoslosforos.com/sutra4071.html en
donde se explican los beneficios de particionar las
tablas:

"* Segmentos de datos más pequeños: esto influye
directamente en el rendimiento de las búsquedas porque
cada partición es tratada como si fuera una tabla
diferente; Oracle siempre sabrá en que partición
buscar cuando se referencia a la tabla particionada,
entonces debe buscar en un trozo más pequeño.
* Indices más pequeños: con la partición por rangos
es posible crear índices individuales para cada
partición.
* Respaldo más rápido: ya que los datos se encuentran
en segmentos separados, el mecanismo de respaldo puede
correr en paralelo."

" Por ejemplo, si deseamos tener una tabla que
almacene
los países del mundo, con la siguiente estructura:

Código Nombre Población Continente

Y deseamos particionarla por el código, entonces la
sintaxis de creación tendría que ser como sigue:

CREATE TABLE paises
(codigo number(3), nombre varchar2(40), población
number(12), ....)
PARTITION BY RANGE (codigo)
(PARTITION VALUES LESS THAN 2 -- (regiones con
código=1)
TABLESPACE ts_reg1
, PARTITION VALUES LESS THAN 3 -- (regiones con
código=2)
TABLESPACE ts_reg2 ; "

(fin de la cita)

Mi primera pregunta es:
¿ Esto podría realizarse en PostgreSQL ? se que la
versión 8 de PostgreSQL maneja tablespaces pero no sé
si existe un código equivalente al que acabo de citar.

Segunda pregunta:

¿ Conocen ustedes de una implementación exitosa con
bases de datos PostgreSQL a nivel empresarial ?
Quiero decir, podrían enviarme, si conocen, algunos
enlaces donde mencionen algunas empresas que usen de
forma exitosa, bases de datos PostgreSQL para manejar
grandes volúmenes de datos.

Bueno eso es lo que deseo saber.

De antemano les doy las gracias por toda la ayuda y
las recomendaciones que me puedan brindar al respecto.

Saludos Cordiales.-
Alfredo Rico.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2005-09-20 19:01:58 Re: hacer uso del index en un select
Previous Message Alvaro Herrera 2005-09-20 18:14:46 Re: existe conexion pero no veo las db/schemas en el pgadmin