En MariaDB, una tabla se puede dividir en subconjuntos más pequeños. Tanto los datos como los índices están particionados.

Usos para particionar

Puede haber varias razones para usar esta función:

  • Las tablas e índices muy grandes pueden ser lentos incluso con consultas optimizadas. Pero si la tabla de destino está particionada, las consultas que leen una pequeña cantidad de particiones pueden ser mucho más rápidas.
  • El particionamiento permite distribuir archivos a través de múltiples dispositivos de almacenamiento. Por ejemplo, podemos tener datos históricos en discos más grandes y lentos (se supone que los datos históricos no se leen con frecuencia); y los datos actuales pueden estar en discos más rápidos o dispositivos SSD.
  • En caso de que separemos los datos históricos de los datos recientes, probablemente necesitemos realizar copias de seguridad periódicas de una partición, no de toda la tabla.

Particionamiento para motores de almacenamiento específicos

Algunos motores de almacenamiento de MariaDB permiten usos más interesantes para el particionamiento.

SPIDER permite:

  • Mover particiones de la misma tabla en diferentes servidores. De esta forma, la carga de trabajo se puede distribuir en más máquinas físicas o virtuales (fragmentación de datos).
  • Todas las particiones de una tabla SPIDER también pueden vivir en la misma máquina. En este caso, habrá una pequeña sobrecarga (SPIDER usará conexiones a localhost), pero las consultas que leen varias particiones usarán subprocesos paralelos.

CONNECT permite:

  • Cree una tabla cuyas particiones sean tablas que utilicen diferentes motores de almacenamiento (como InnoDB, MyISAM o incluso motores que no admitan particiones).
  • Cree una tabla indexable y grabable en varios archivos de datos. Estos archivos pueden estar en diferentes formatos.

Ver también: Uso de CONNECT – Particionamiento y fragmentación

Tipos de particionamiento

Al particionar una tabla, el usuario debe decidir:

  • a tipo de partición;
  • a expresión de partición.

Un tipo de partición es el método utilizado por MariaDB para decidir cómo se distribuyen las filas en las particiones existentes. Elegir el tipo de partición adecuado es importante para distribuir las filas en las particiones de manera eficiente.

Con algunos tipos de partición, también se requiere una expresión de partición. Una función de partición es una expresión SQL que devuelve un valor entero o temporal, que se utiliza para determinar qué fila contendrá una fila determinada. La expresión de partición se utiliza para todas las lecturas y escrituras relacionadas con la tabla particionada, por lo que debería ser rápida.

Consulte Tipos de partición para obtener una descripción detallada.

Cómo usar la partición

De forma predeterminada, MariaDB permite la partición. Puede determinar esto utilizando la instrucción SHOW PLUGINS, por ejemplo:

SHOW PLUGINS;...| Aria                          | ACTIVE   | STORAGE ENGINE|NULL| GPL     || FEEDBACK                      | DISABLED | INFORMATION SCHEMA|NULL| GPL     ||partition| ACTIVE   | STORAGE ENGINE|NULL| GPL     |+-------------------------------+----------+--------------------+---------+---------+

Si la partición aparece como DESHABILITADA:

|partition| DISABLED | STORAGE ENGINE|NULL| GPL     |+-------------------------------+----------+--------------------+---------+---------+

MariaDB se ha creado sin soporte de partición o se ha iniciado con la opción –skip-partition o una de sus variantes:

--skip-partition--disable-partition--partition=OFF

y no podrá crear particiones.

Es posible crear una nueva tabla particionada usando CREATE TABLE.

ALTER TABLE permite:

  • Particionar una tabla existente;
  • Eliminar particiones de una tabla particionada (con todos los datos en la partición);
  • Agregar/eliminar particiones, o reorganizarlas, siempre que la función de partición permita estas operaciones (ver más abajo);
  • Intercambiar una partición con una tabla;
  • Realizar operaciones administrativas en algunas o todas las particiones (analizar, optimizar, comprobar, reparar).

La tabla INFORMATION_SCHEMA.PARTITIONS contiene información sobre las particiones existentes.

El contenido reproducido en este sitio es propiedad de sus respectivos dueños, y MariaDB no revisa este contenido por adelantado. Los puntos de vista, la información y las opiniones expresadas por este contenido no representan necesariamente las de MariaDB o cualquier otra parte.