En MySQL (y PostgreSQL), ¿qué constituye exactamente una instancia de base de datos y una partición de base de datos?
Por ejemplo, ¿es necesario que las diferentes particiones de la base de datos vivan necesariamente en diferentes instancias de la base de datos? ¿O puede una sola instancia de base de datos administrar varias particiones? Si es lo último, ¿cuál es el punto de llamarlo "partición" ? ¿El DB tendría algún conocimiento de ello en este caso?
Aquí hay una cita de un documento que describe el diseño de un sistema de un curso en línea:
¿Cómo podemos planificar el crecimiento futuro de nuestro sistema?
Podemos tener una gran cantidad de particiones lógicas para acomodar el crecimiento futuro de los datos, de modo que, al principio, varias particiones lógicas residan en un único servidor de base de datos físico . Dado que cada servidor de base de datos puede tener múltiples instancias de base de datos, podemos tener bases de datos separadas para cada partición lógica en cualquier servidor. Entonces, cada vez que sentimos que un servidor de base de datos en particular tiene muchos datos, podemos migrar algunas particiones lógicas de él a otro servidor. Podemos mantener un archivo de configuración (o una base de datos separada) que pueda asignar nuestras particiones lógicas a los servidores de la base de datos; esto nos permitirá mover las particiones fácilmente. Siempre que queramos mover una partición, solo tenemos que actualizar el archivo de configuración para anunciar el cambio.
Estos términos son confusos, mal utilizados y definidos de manera inconsistente.
Para MySQL:
Una base de datos tiene múltiples definiciones:
Una instancia se refiere a una copia de mysqld que se ejecuta en alguna máquina en algún lugar.
Una PARTITION es una forma específica de diseñar una table (en una base de database ).
CREATE TABLE (...) PARTITION BY ... .La fragmentación no está implementada en MySQL, pero se puede realizar sobre MySQL.
PARTITIONs de una tabla.La partición vertical es donde algunas columnas se extraen de una tabla y se colocan en una tabla paralela.
PRIMARY KEY , lo que facilitaría las JOINs .LEFT JOIN para obtener NULLs ).Replicación y agrupamiento
Las particiones, en términos del conjunto de características de MySQL y PostgreSQL, son segmentaciones físicas de datos. Existen dentro de una sola instancia de base de datos y se utilizan para reducir el alcance de los datos con los que está interactuando en un momento determinado, para hacer frente a situaciones de gran volumen de datos.
El documento que está citando habla de un concepto más abstracto de una partición de datos en el nivel de diseño del sistema.