Maison > base de données > tutoriel mysql > le corps du texte

Exemple détaillé de la façon de modifier la taille de la page de données d'Innodb pour optimiser MySQL

怪我咯
Libérer: 2017-07-05 11:22:29
original
1664 Les gens l'ont consulté

Cet article présente principalement la méthode de modification de la taille de la page de données d'Innodb pour optimiser MySQL est le prochain moteur de données populaire de MySQL auquel les amis qui en ont besoin peuvent se référer.

Nous savons que la page de données d'Innodb fait 16 Ko, et c'est une règle rigide. Il n'y a aucun moyen de la modifier dans le système. Nous espérons que MySQL pourra prendre en charge plusieurs tailles de page de données comme Oracle à l'avenir. .
Mais dans les applications réelles, parfois 16 Ko est un peu trop grand, surtout lorsque de nombreuses entreprises migrent vers MySQL alors qu'Oracle ou SQL SERVER fonctionnent très bien et trouvent que la croissance des E/S est trop évidente,
J'ai pensé à changer les données taille des pages.
En fait, la taille de la page de données d'innodb peut également être modifiée. Il vous suffit de la modifier au niveau de la couche de code source, puis de reconstruire MySQL.
Méthode de changement :
(Prenez la source MySQL-5.1.38. code à titre d'exemple)
L'emplacement est dans storage/innobase/include/univ.i, recherchez dans univ.i : UNIV_PAGE_SIZE

/*
  DATABASE VERSION CONTROL
  ========================
*/
 
/* The universal page size of the database */
#define UNIV_PAGE_SIZE     (2 * 8192) /* NOTE! Currently, this has to be a
   power of 2 */
/* The 2-logarithm of UNIV_PAGE_SIZE: */
#define UNIV_PAGE_SIZE_SHIFT 14
 
/* Maximum number of parallel threads in a parallelized operation */
#define UNIV_MAX_PARALLELISM 32
Copier après la connexion

UNIV_PAGE_SIZE est la taille de la page de données , la valeur par défaut est 16K. Ce qui suit Les remarques indiquent que cette valeur peut être réglée à une puissance de 2. Cette valeur peut être définie sur 4k, 8k, 16k, 32K, 64K, ce qui n'a aucun sens dans les grandes applications.
Après avoir modifié UNIV_PAGE_SIZE en même temps, vous devez modifier UNIV_PAGE_SIZE_SHIFT. La valeur est UNIV_PAGE_SIZE à la puissance 2, donc les paramètres des pages de données sont les suivants :

#define UNIV_PAGE_SIZE_SHIFT 12 if UNIV_PAGE_SIZ=4K
#define UNIV_PAGE_SIZE_SHIFT 13 if UNIV_PAGE_SIZ=8K
#define UNIV_PAGE_SIZE_SHIFT 15 if UNIV_PAGE_SIZ=32K
Copier après la connexion

Exemple :
Changez la page de données d'innodb en 8K, la modification correspondante est :

/*
  DATABASE VERSION CONTROL
  ========================
*/
 
/* The universal page size of the database */
#define UNIV_PAGE_SIZE     8192  /* NOTE! Currently, this has to be a
   power of 2 */
/* The 2-logarithm of UNIV_PAGE_SIZE: */
#define UNIV_PAGE_SIZE_SHIFT 13
 
/* Maximum number of parallel threads in a parallelized operation */
#define UNIV_MAX_PARALLELISM 32
Copier après la connexion

Recompilez, puis testez, testez et testez à nouveau. Bonne chance !

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!