La velocidad en tiempos de respuesta en las aplicaciones es un factor determinante en cualquier desarrollo de software. Es por esto que cuando las aplicaciones realizan una transacción como buscar, actualizar e insertar información se busca que sea de forma inmediata.
La inmediatez en los desarrollos de software depende tanto del hardware como del software y sus respectivas configuraciones. Por consiguiente existen muchas soluciones para obtener la inmediatez y en muchos casos se complementa entre ellas mismas, pero en este caso en particular me enfocare en explicar una que esta relacionada generalmente con las bases de datos relacionales, y es la partición de tablas, la cual es muy utilizda cuando se tienen grandes volumnes de información.
La partición de tablas es una solución que combina en muchos casos el hardware de la máquina con la solución lógica para el motor de base de datos relacional, en su definición lógica es una forma de organizar los datos clasificándolas según criterios de agrupación, de manera que cada transacción realizada en una tabla padre se redirija automáticamente a un menor grupo de datos que están agrupados en las tablas hijas.
Hay dos formas de realizar la partición de tablas de una manera lógica, una es la segmentación de datos por fila la cual se llama partición de tablas de manera horizontal y la otra es la segmentación de datos por columnas la cual se llama partición de tablas de manera vertical, cada una de estas formas aplica ciertos criterios de agrupación como se nombran a continuación:
Partición de tablas de manera horizontal
- Definiciones exactas de un valor de un tipo de dato en una o varias columnas como segmentación por ciudades por tipo de sexo o un valor numérico, entre otras.
- Entre rangos, en este caso se tiene un valor o tipo de datos en una columna como fechas o valores numéricos que nos permiten definir un criterio basado en intervalos o porciones.
- En este caso se definen tablas con pocas columnas donde una de las columna esta enlazada con una columna de la tabla padre, esta forma es muy utilizado para dividir columnas de grandes objetos como fotos y videos, o columnas que contiene información estática que se utiliza en forma agrupada para realizar análisis estadísticos, es decir este método trata de simular las bases de datos orientadas a columnas.
En que ayuda la partición de tablas, es una solución que aumenta el rendimiento cuando la velocidad del disco duro es el cuello de botella en las aplicaciones, ya que permite reducir la cantidad de datos a recorrer en cada consulta, además de generar índices mas pequeños para las búsquedas, por consiguiente aumenta el rendimiento en la ejecución ya que las tablas por ser de menor tamaño se ubican en la RAM y por lo tanto se evita ir al disco duro, además en algunos casos permite realizar respaldos o backups mas rápidos cuando se tiene segmentos de datos no actualizables.
Enlaces sugeridos wikipedia
Shard
Particionamiento
Continuará…………..