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