web-dev-qa-db-fra.com

MySQL: Qu'est-ce qu'une page?

Je ne peux pas pour la vie de me rappeler ce qu'est une page, dans le contexte d'une base de données MySQL. Quand je vois quelque chose comme 8 Ko/page, cela signifie-t-il 8 Ko par ligne ou ...?

37
Matty

Les pages de base de données sont la structure de base interne pour organiser les données dans les fichiers de base de données. Ci-dessous, quelques informations sur le modèle InnoDB:

De 13.2.11.2. Gestion de l'espace fichier :

Les fichiers de données que vous définissez dans le fichier de configuration forment l'espace de table InnoDB. Les fichiers sont logiquement concaténés pour former l'espace disque logique. [...] L'espace disque logique se compose de pages de base de données d'une taille par défaut de 16 Ko. Les pages sont regroupées en extensions de taille 1 Mo (64 pages consécutives). Les "fichiers" à l'intérieur d'un tablespace sont appelés segments dans InnoDB.

Et à partir de 13.2.14. Restrictions sur les tables InnoDB

La taille de page par défaut de la base de données dans InnoDB est de 16 Ko. En recompilant le code, vous pouvez le définir sur des valeurs allant de 8 Ko à 64 Ko.

De plus, pour mettre des lignes par rapport aux pages :

La longueur maximale des lignes, à l'exception des colonnes de longueur variable (VARBINARY, VARCHAR, BLOB et TEXT), est légèrement inférieure à la moitié d'une page de base de données. Autrement dit, la longueur de ligne maximale est d'environ 8 000 octets. Les colonnes LONGBLOB et LONGTEXT doivent être inférieures à 4 Go et la longueur totale des lignes, y compris les colonnes BLOB et TEXT, doit être inférieure à 4 Go.

22
MicSim

Bien,

ce n'est pas vraiment une question sur MySql, c'est plus sur la taille de la page en général dans la gestion de la mémoire.

Vous pouvez lire à ce sujet ici: http://en.wikipedia.org/wiki/Page_ (computer_memory)

Mettez simplement sa plus petite unité de données qui est échangée/stockée.

La taille de page par défaut est 4k, ce qui est probablement correct.

Si vous avez de grands ensembles de données ou seulement très peu d'opérations d'écriture, cela peut améliorer les performances pour augmenter la taille de la page.

Jetez un œil ici: http://db.Apache.org/derby/manuals/tuning/perf24.html

Pourquoi? Parce que plus de données peuvent être récupérées/adressées à la fois. Si la probabilité est élevée que les données souhaitées soient à proximité des données que vous venez de récupérer, ou directement après (enfin ce n'est pas vraiment dans l'espace 3D mais je pense que vous obtenez ce que je veux dire), vous pouvez simplement les récupérer en une seule opération et profitez mieux de plusieurs technologies de mise en cache et d'extraction de données, en général à partir de votre disque dur.

Mais d'un autre côté, vous perdez de l'espace si vous avez des données qui ne remplissent pas la taille de la page ou qui sont juste un peu plus ou quelque chose.

Personnellement, je n'ai jamais eu de cas où le réglage de la taille de la page était important. Il y avait toujours de meilleures approches pour optimiser les performances, et sinon, c'était déjà plus que suffisamment rapide.

20
The Surrican

C'est la taille dont les données sont stockées/lues/écrites sur le disque et en mémoire.

Différentes tailles de page peuvent fonctionner mieux ou moins bien pour différentes charges de travail/ensembles de données; c'est-à-dire que parfois vous voudrez plus de lignes par page, ou moins de lignes par page. Cela dit, la taille de page par défaut convient à la plupart des applications.

Notez que les "pages" ne sont pas uniques pour MySQL. C'est un aspect d'un paramètre pour toutes les bases de données.

5
Riedsio