当前位置:网站首页>Modèle de Cluster MySQL et scénario d'application
Modèle de Cluster MySQL et scénario d'application
2022-04-23 15:38:00 【Dengk2013】
Assistant provincial:
Mode bibliothèque unique:UnmysqlLa base de données contient toutes les données pertinentes.
Mode de regroupement séparé lecture - écriture:Ajouter une couche intermédiaire sur la base originale,Regroupement séparé de la lecture et de l'écriture avec des ensembles de données d'arrière - plan.Infrastructure globale:Bibliothèque de polices dérivée de la bibliothèque principale originale1,Bibliothèque de caractères2,
UtilisationmysqlMécanisme de synchronisation maître - esclave existant(C'est - à - dire::binlogSynchronisation des journaux),Reproduire les changements de données de la bibliothèque principale à partir de la bibliothèque,Assurer la synchronisation des données.La bibliothèque principale est généralement utilisée pour le traitement des écritures,
Lire à partir de la bibliothèque.Détails:Si vous ne pouvez pas terminer la séparation lecture - écriture en faisant face directement à la bibliothèque principale,Nécessité d'attribuer des intergiciels à puce à l'avant(Ali!mycat,JDShardingSphere),
L'intergiciel passe parcurdDemande,Pour déterminer la bibliothèque à gérer.MHAMiddleware haute disponibilité(C'est - à - dire::Le serveur principal est en panne.,MHAUn Middleware peut promouvoir un serveur primaire à partir d'une table).
Toutes les données du noeud sont synchronisées.Pour lire plus et écrire moins,Des millions d'applications Internet.
Sous - entrepôt sous - Tableau(Fractionnement)Mode Cluster:UnmysqlSi la base de données ne tient pas.Diviser les données de la base de données en différentes bases de données de noeuds(C'est - à - dire::Les données de la base de données des noeuds sont combinées en un corps de données complet).
Nécessite un Middleware pour le routage.(C'est exact.sqlAnalyser,Envoyer la demande à la base de données correspondante,Le processus de distribution des demandes est appelé routage).Pas de disponibilité élevée.
Pourquoi les grandes usines font - elles des tables verticales??
Il y a trop de champs dans une table qui doivent être divisés verticalement.
Qu'est - ce qu'un sous - Tableau horizontal?
Diviser les données en unités de comportement( Méthode du champ d'application ,hashDroit).Caractéristiques: Toutes les tables ont exactement la même structure . Pour résoudre les problèmes de stockage de grandes quantités de données .
Qu'est - ce qu'un sous - Tableau vertical?
Diviser le tableau en colonnes 2 Petite montre au - dessus de la feuille , Obtenir des données par l'Association primaire de clés étrangères .
Pourquoi faire ça??
Besoin de comprendremysqlDeInnoDBMoteur de traitement.
Les données de ligne sont appelées :row
L'Unit é de base des données de gestion est appelée Page :page; Taille par défaut de chaque page :16k
L'Unit é dans laquelle la page est sauvegardée est appelée Zone :Extent.
Relations: La zone se compose de pages consécutives , La page se compose de lignes consécutives .1024/16=64(C'est - à - dire::Un1M La zone de 64Page (s))
InnoDB1.0 Nouvelles caractéristiques après ,Compresser la page.
Compresser la page: Compression de la couche inférieure des données , Rendre la taille réelle inférieure à la taille logique .
Lors de la recherche de données entre les pages , Faible efficacité de compression et de décompression .Au moment de la conception de la table, Stocker autant de données de ligne que possible dans la page , Réduire la recherche de pages croisées , Ajouter une recherche en page .
Analyse:
1Les données de ligne sont:1K,1(En milliers de dollars des États - Unis)16K,C'est - à - dire:1(En milliers de dollars des États - Unis)16Données,1 Des milliards de données sont nécessaires 62510 000 pages
Après la pagination verticale ,1Les données de ligne sont:64Octets(1K=1024Octets),C'est - à - dire:1(En milliers de dollars des États - Unis)256Données,1 Des milliards de données sont nécessaires 4010 000 pages. Les données après la pagination sont basées sur id Extraction rapide de relations égales .
En divisant les champs importants individuellement en petits tableaux , Tenir plus de lignes de données par page , Après réduction de page , Réduire la portée de la numérisation des données ,Atteindre l'objectif d'améliorer l'efficacité de la mise en oeuvre.
Conditions de séparation verticale :
1. Les données d'un seul tableau s'élèvent à 10 millions
2. Champ super 20- Oui.,Et contientvachar,CLOB,BLOBChamp égal
Champ agrandir la base de la petite table :
Petite montre:Recherche de données、 Champs requis lors du tri ; Petits champs accessibles à haute fréquence
Grande montre: Champ d'accès LF ;Grand champ
Les clés primaires auto - incrémentales ne s'appliquent pas dans un environnement distribué.
Puisque la clé primaire auto - incrémentale doit être continue , Donc, par la méthode de la plage, on fait des tranches ,IDQuantité fixe.Impossible d'étendre dynamiquement.Ça va se produire.“Hotspot arrière”Effets.
Hotspot arrière:C'est - à - dire après le fractionnement selon la méthode de la plage,Données stockées dans les tranches précédentes,La dernière pièce est sous pression..
HashPlus grande efficacité du fractionnement.
UtiliserUUID Remplacer la clé primaire auto - incrémentale ?Je ne peux pas、
Impliquer le mécanisme sous - jacent de la base de données :
1.uuid,Le seul désordre. Le désordre entraîne un réarrangement de l'index .Lorsque la clé primaire est ordonnée,B+Il suffit d'ajouter l'arbre aux données originales.
Comment?? Algorithme de génération de clés primaires distribué et ordonné ?
Algorithme flocon de neige(SnowFlake),Twitter.
Structure:Bits de symbole(1bit)+Horodatage(41bit)+MachinesID(10bit)+Séquence(12bit)
Mode d'emploi:Appel directJARSac
L'algorithme flocon de neige exige une attention particulière à l'impact du rappel temporel .Peut - être.idPossibilité de répétition
Ali!canal
版权声明
本文为[Dengk2013]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204231537380354.html
边栏推荐
- php类与对象
- Openstack theoretical knowledge
- PHP operators
- Collation of errors encountered in the use of redis shake
- Code live collection ▏ software test report template Fan Wen is here
- [backtrader source code analysis 18] Yahoo Py code comments and analysis (boring, interested in the code, you can refer to)
- Cookie&Session
- Precautions for use of dispatching system
- Detailed explanation of kubernetes (IX) -- actual combat of creating pod with resource allocation list
- kubernetes之常用Pod控制器的使用
猜你喜欢
随机推荐
Summary of interfaces for JDBC and servlet to write CRUD
基础贪心总结
Elk installation
Educational Codeforces Round 127 A-E题解
【Leetcode-每日一题】安装栅栏
Pytorch中named_parameters、named_children、named_modules函数
通過 PDO ODBC 將 PHP 連接到 MySQL
布隆过滤器在亿级流量电商系统的应用
Mysql database explanation (10)
提取不重复的整数
PHP classes and objects
Hj31 word inversion
通过 PDO ODBC 将 PHP 连接到 MSSQL
MySQL InnoDB transaction
Explanation of redis database (I)
GFS distributed file system (Theory)
服务器中毒了怎么办?服务器怎么防止病毒入侵?
字节面试 transformer相关问题 整理复盘
一刷314-剑指 Offer 09. 用两个栈实现队列(e)
Explanation of redis database (III) redis data type