Cet article vous apporte des connaissances pertinentes sur MySQL. Les programmeurs doivent beaucoup gérer MySQL. On peut dire qu'ils y sont exposés tous les jours, mais quelle quantité de données une table MySQL peut-elle stocker ? Quelle est la base de calcul ? Discutons-en ensemble, j'espère que cela sera utile à tout le monde.
Dans le système d'exploitation, on sait que pour interagir avec le disque, la mémoire est également paginée, avec une taille de page de 4 Ko. De même, dans MySQL, afin d'améliorer le débit, les données sont également paginées, mais la taille de la page de données de MySQL est de 16 Ko. (Pour être exact, la taille de la page de données InnoDB est de 16 Ko). Pour une étude détaillée, veuillez vous référer au site officiel. Nous pouvons l'interroger avec la commande suivante.
mysql> SHOW GLOBAL STATUS LIKE 'innodb_page_size'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | Innodb_page_size | 16384 | +------------------+-------+ 1 row in set (0.00 sec)
Aujourd'hui, nous n'entrons pas dans le pointeur de structure spécifique de la page de données, sachez simplement qu'il fait 16 Ko par défaut, ce qui signifie que la taille des données d'un nœud est de 16 Ko
La structure d'index de MySQL que nous devrions Comme nous le savons tous, c'est la structure arborescente b+ suivante
Habituellement, les nœuds non-feuilles de l'arbre b+ ne stockent pas de données, seuls les nœuds feuilles (la couche inférieure) stockent les données, alors parlons-en à propos des nœuds, un nœud fait référence à (pour l'image ci-dessus)
Chaque partie sélectionnée dans la case rouge est appelée un nœud, pas un élément. Après avoir compris le concept de nœuds et la taille de chaque nœud étant de 16 Ko, il nous est beaucoup plus facile de calculer la quantité de données que MySQL peut stocker
D'abord, nous regardons uniquement. le nœud racine
Par exemple, le type de données que nous définissons est bigint, la taille est 8b
Il y a encore un petit espace dans les données elles-mêmes, qui est utilisé pour stocker l'adresse de la page de données d'index de niveau suivant , la taille est de 6 Ko
Nous sommes donc. On peut calculer qu'un espace avec des données de (8b+6b=14b) (prenons bigint comme exemple. Nous venons de mentionner que la taille d'une page de données est de 16 Ko). , qui est (16*1024)b, alors le nœud racine peut stocker (16*1024/(8+6)) données, le résultat est d'environ 1170 données. S'il est calculé selon la méthode de calcul du nœud, l'étape suivante sera. être facile.
La deuxième couche est en fait plus simple, car la structure des données de chaque nœud est la même que celle du nœud, et chaque élément du nœud prolongera un nœud, donc le volume des données de la deuxième couche est 1170 *1170=1368900, le problème réside dans la troisième couche, car le nœud feuille d'innodb contient directement toutes les données MySQL. S'il y a beaucoup de champs, l'espace occupé par les données n'est pas petit. ici comme 1 Ko, donc dans la troisième couche, chaque nœud fait 16 Ko, alors chaque nœud peut contenir 16 éléments de données, donc à la fin le total des données que MySQL peut stocker est
1170 * 1170 * 16 = 21902400 (dizaines de millions d'éléments)
En fait, le résultat du calcul est le même que Notre expérience de travail quotidienne est également cohérente. Généralement, si les données d'une table MySQL dépassent 10 millions, elles doivent être divisées en tables.
Enfin, utilisez une image pour résumer ce qui a été discuté aujourd'hui. J'espère que vous l'aimerez
Apprentissage recommandé :Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!