Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

296
Visualizações
Servidores de bases de datos, particiones e instancias

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 residen 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.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Estos términos son confusos, mal utilizados y definidos de manera inconsistente.

Para MySQL:

Una base de datos tiene múltiples definiciones:

  • Un "esquema" (como lo usan otros proveedores/estándares). Esta es una colección de tablas. Hay una o más "bases de datos en una instancia.
  • la instancia Debe usar "servidor" o "servidor de base de datos" para ser más claro.
  • Los datos. "Conjunto de datos" podría ser un mejor término.

Una instancia se refiere a una copia de mysqld que se ejecuta en alguna máquina en algún lugar.

  • Puede tener varias instancias en una sola pieza de hardware. (Extraño)
  • Puede tener varias instancias en una sola pieza de hardware, con las instancias en diferentes VM o Dockers. (útil para probar)
  • Por lo general, "instancia" se refiere a un servidor con una copia de MySQL. (Típico para situaciones de mayor escala)

Una PARTITION es una forma específica de diseñar una table (en una base de database ).

  • Se ve en CREATE TABLE (...) PARTITION BY ... .
  • Es una división "horizontal" de los datos, a menudo por fecha, pero podría ser por alguna otra "columna".
  • No tiene un impacto directo en el rendimiento, por lo que rara vez es útil.

La fragmentación no está implementada en MySQL, pero se puede realizar sobre MySQL.

  • También es una división "horizontal" de los datos, pero en este caso entre múltiples "instancias".
  • El caso de uso es, por ejemplo, las redes sociales donde hay millones de "usuarios" que en su mayoría son manejados por ellos mismos. Es decir, la mayoría de las consultas se centran en una sola porción de los datos, por lo que es práctico para un grupo de usuarios en un servidor y realizar todas esas consultas allí.
  • Puede denominarse "partición horizontal", pero no debe confundirse con las PARTITIONs de una tabla.

La partición vertical es donde algunas columnas se extraen de una tabla y se colocan en una tabla paralela.

  • Ambas tablas tendrían (normalmente) la misma PRIMARY KEY , lo que facilitaría las JOINs .
  • La partición vertical se haría (normalmente) solo en una sola "instancia".
  • Los propósitos incluyen dividir grandes columnas de texto/blog; dividir columnas opcionales (y usar LEFT JOIN para obtener NULLs ).
  • La partición vertical fue algo útil en MyISAM, pero rara vez lo fue en InnoDB, ya que ese motor lo hace automáticamente.

Replicación y agrupamiento

  • Múltiples instancias contienen los mismos datos.
  • Se utiliza para "Alta disponibilidad" (HA).
  • Se utiliza para escalar horizontalmente las lecturas.
  • Ortogonalmente a la partición o fragmentación.
  • No tiene sentido tener las instancias en el mismo servidor (excepto para pruebas/experimentación/escenificación/etc).
over 4 years ago · Santiago Trujillo Relatório

0

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.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda