El particionado de tablas es una técnica que se usa para reducir la cantidad de lecturas físicas a la base de datos cuando ejecutamos consultas, existen dos principales modalidades de particionado:
Horizontal: Esta modalidad consiste en tener varias tablas con las mismas columnas en cada una de ellas y distribuir la cantidad de registros en estas tablas (generalmente se particiona separando la data por años, meses, etc). Ej: Tenemos tres tablas registro2001, registro2002 y registro2003 y en cada tabla guardamos los registros de los años correspondientes, esto nos garantiza un incremento considerable cuando realicemos consultas sobre las tablas ya que la data estará distribuida en tres partes y ya sabríamos dependiendo del año en cual tabla buscar.
Vertical: Esta modalidad generalmente la aplicamos en nuestros diseños de BBDD sin darnos cuenta, por ejemplo cuando tenemos una columna de tipo BLOB con una fotografía o un texto muy largo que no leemos frecuentemente y decidimos ponerla en otra tabla referenciandola con la clave foránea.
En los siguientes enlaces se muestra como hacerlo: MySQL y PostgreSQL
En el ejemplo mostrado de MySQL se puede observar la gran diferencia con dos tablas que tienen exactamente la misma data (8 millones de registros) una sin particionar y la otra particionada por años, al realizar una consulta filtrando por la columna en la cual se basó el particionado se obtuvieron los siguientes resultados:
- Tabla sin particionado: 38.30 segundos
- Tabla con particionado: 0.34 segundos
Muy funcional esta tecnica para seccionar una tabla de muchos registros que incremente el tiempo de respuesta y asi mejorar los procesos.
ResponderBorrarGracias por el aporte.
Muy funcional esta tecnica para seccionar una tabla de muchos registros que incremente el tiempo de respuesta y asi mejorar los procesos.
ResponderBorrarGracias por el aporte.