El 14 de octubre de 2013 09:53, Arcel Labrada Batista
<alabra...@uci.cu>escribió:

> Buenos días listeros,
>
> estuve buscando como realizar particiones de tablas para tablas muy
> grandes pero no he encontrado nada que me permita hacer particiones por
> cantidad de registros, he visto que se hacen por fechas, pero realmente me
> gustaria para hacerlos por cantidad de registros en las tablas que heredan,
> tengo la disyuntiva además que no puedo agragar un nuevo campo a las tablas
> donde tenga un número secuencial por donde podria ser muy fácil controlar
> esa cantidad de registros, ¿conocen alguna manera de hacer esto?, Saludos y
> gracias de antemano
>
>
En pricipio hacer esto no sería tan difícil. Recuerda que el particionado
se hace a través de un disparador, por lo que puedes controlar
que escribes antes de escribirlo. Este podría tener una secuencia que
cuente la cantidad de registros para la partición actual y se resetee
cuando se cumpla  el límite, luego
para el siguiente insert puedes crear una nueva partición teniendo la
secuencia a 0.

Sino, la idea más fácil sería agregar un particionado por clave subrogada
(id) secuencial (range partitioning) Ej: particion1 (id between 1 and 1000,
part2 1001 and 2000). El id
estaría basado en una secuencia y/o en una hermosísima tabla de 1 campo/1
row. Más de uno estará a punto de tirar un zapato ahora mismo.

Ahora bien. Para que podría servir esto? Sencillo. Seguro haces muchas
consultas sobre id, correcto? Bueno, la verdad es que en ese caso el
particionado no ayuda. El acceso
por índice se encarga de esto. El particionado se usa más que nada para
manejar fácilmente particiones históricas o busquedas por rango grandes
(que evitan caer en un
full scan masivo a toda la tabla si quieres leer 1 mes, por ejemplo).



-- 
--
Emanuel Calvo

Responder a