Condivisione della tecnologia

Intervista: database e tabelle del cluster Mysql-3

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Prefazione

Conosci i cluster MySQL? Comprendi il processo di replica master-slave Come gestisci enormi quantità di dati? Questo articolo si concentra sull'introduzione delle domande dell'intervista e mi auguro che ogni programmatore possa partecipare! ! !


1. Cluster MySQL

Nell'ambiente online, generalmente distribuiamo un'istanza Mysql con 1 master e 1 slave, o 1 master con più slave, per ottenere l'elevata disponibilità di Mysql e la separazione lettura-scrittura Mysql master-slave viene eseguita tramite log binlog.

1.1 Costruzione del cluster MySQL:

Per quanto riguarda la costruzione del cluster Mysql master-slave potete fare riferimento all'articolo qui sotto del blogger

1.2 Processo di sincronizzazione master-slave:

Inserisci qui la descrizione dell'immagine

2. Come fa Mysql a gestire l'archiviazione di grandi quantità di dati?

Come archiviazione di dati relazionali, MySQL avrà un collo di bottiglia nelle prestazioni quando il volume di dati di una singola tabella supera i 30 milioni. Allo stesso modo, la connessione client e la concorrenza supportate da una singola istanza MySQL presentano alcuni colli di bottiglia. In questo momento, il sistema ne ha bisogno prendere in considerazione l'utilizzo della tecnologia del sottodatabase e della sottotabella da implementare.

2.1 Divisione verticale

2.1.1 Sottobiblioteca verticale:

Ad esempio, i microservizi di oggi sono stati suddivisi verticalmente. Ogni modulo di microservizi può essere collegato alla propria istanza del database Mysql. La sua caratteristica è che si basa su tabelle e divide diverse tabelle in diverse librerie a seconda dell'attività. ed espandere i dati a diversi livelli; aumentare l'I0 del disco e le connessioni del volume di dati in condizioni di concorrenza elevata;
Inserisci qui la descrizione dell'immagine

2.1.2 Tavolo verticale:

In base ai campi, i diversi campi vengono suddivisi in diverse tabelle in base agli attributi del campo.Si può fare: separare i dati caldi e freddi; ridurre la concorrenza nella transizione IO e le due tabelle non si influenzano a vicenda.

Inserisci qui la descrizione dell'immagine

2.2 Divisione orizzontale:

2.2.1 Sottolibreria orizzontale:

Dividere i dati da una libreria in più librerie. Risolve il problema del collo di bottiglia delle prestazioni dovuto al gran numero di singole librerie e all'elevata concorrenza e migliora la stabilità e la disponibilità del sistema.
Inserisci qui la descrizione dell'immagine

2.2.2 Tavolo orizzontale:

Dividere i dati di una tabella in più tabelle (possono trovarsi nella stessa libreria). Ottimizzare i problemi di prestazioni causati da un volume eccessivo di dati in una singola tabella; evitare conflitti di I/O e ridurre la probabilità di blocchi della tabella;
Inserisci qui la descrizione dell'immagine

2.3 Utilizzi sotto-librerie e sotto-tabelle nel tuo progetto?

Abbiamo creato istanze di database in base a diverse aziende in spring-boot gestite da spring-cloud e realizzato il partizionamento verticale. Per far fronte all'archiviazione di enormi quantità di dati, il nostro progetto utilizza anche il middleware Mycat per dividere database e tabelle.

Installazione di Mycat e integrazione Spring-boot:

2.4 Hai riscontrato problemi tecnici durante la divisione di database e tabelle?

Dopo che il database è stato diviso in tabelle, poiché i dati verranno archiviati in più tabelle in più database, si verificheranno transazioni distribuite, ID globali distribuiti, impostazioni delle regole di routing e problemi di paging tra nodi;


Riassumere

Questo articolo risolve alcune domande dell'intervista sui cluster MySQL, sui database secondari e sulle tabelle.