Maison  >  Article  >  base de données  >  Quelle quantité de données une table MySQL peut-elle stocker ?

Quelle quantité de données une table MySQL peut-elle stocker ?

WBOY
WBOYavant
2023-01-22 07:30:013297parcourir

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.

Quelle quantité de données une table MySQL peut-elle stocker ?

1. Préparation des connaissances

1.1. Page de données

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

1.2, structure d'index (innodb)

La structure d'index de MySQL que nous devrions Comme nous le savons tous, c'est la structure arborescente b+ suivante

Quelle quantité de données une table MySQL peut-elle stocker ?

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)

Quelle quantité de données une table MySQL peut-elle stocker ?

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

2 Méthode de calcul spécifique

2.1 Calcul du nœud racine

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

Quelle quantité de données une table MySQL peut-elle stocker ?

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

Quelle quantité de données une table MySQL peut-elle stocker ?

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.

2.2. Calcul des nœuds dans d'autres couches

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.

3. Résumé

Enfin, utilisez une image pour résumer ce qui a été discuté aujourd'hui. J'espère que vous l'aimerez

Apprentissage recommandé :
Tutoriel vidéo MySQL

.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer