Heim  >  Artikel  >  Datenbank  >  Detailliertes Beispiel für die Änderung der Datenseitengröße von Innodb zur Optimierung von MySQL

Detailliertes Beispiel für die Änderung der Datenseitengröße von Innodb zur Optimierung von MySQL

怪我咯
怪我咯Original
2017-07-05 11:22:291665Durchsuche

In diesem Artikel wird hauptsächlich die Methode zum Ändern der Datenseitengröße von Innodb zur Optimierung vorgestellt. MySQL ist die nächste beliebte Daten-Engine von MySQL

Wir wissen, dass die Datenseite von Innodb eine starre Regel ist. Es gibt keine Möglichkeit, sie im System zu ändern. Wir hoffen, dass MySQL in Zukunft mehrere Datenseitengrößen unterstützen kann .
Aber in tatsächlichen Anwendungen sind 16 KB manchmal etwas zu groß, insbesondere wenn viele Unternehmen zu MySQL migrieren, wenn Oracle oder SQL SERVER sehr gut laufen, und feststellen, dass das IO-Wachstum zu offensichtlich ist.
Ich dachte darüber nach, die Daten zu ändern Seitengröße.
Tatsächlich kann die Datenseitengröße von innodb auch geändert werden. Sie müssen sie nur auf der Quellcodeebene ändern und dann MySQL neu erstellen.
Methode ändern:
(Nehmen Sie die MySQL-5.1.38-Quelle Code als Beispiel)
Der Speicherort ist in storage/innobase/include/univ.i, Suche in 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

UNIV_PAGE_SIZE ist die Datenseitengröße , der Standardwert ist 16K. Was folgt: Die Bemerkungen zeigen, dass dieser Wert auf eine Potenz von 2 eingestellt werden kann. Dieser Wert kann auf 4k, 8k, 16k, 32k, 64k eingestellt werden, was bei großen Anwendungen bedeutungslos ist.
Nachdem Sie gleichzeitig UNIV_PAGE_SIZE geändert haben, müssen Sie UNIV_PAGE_SIZE_SHIFT ändern. Der Wert ist die Potenz von 2 als UNIV_PAGE_SIZE, daher lauten die Einstellungen der Datenseiten wie folgt:

#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

Beispiel:
Ändern Sie die Datenseite von innodb auf 8K. Die entsprechende Änderung lautet:

/*
  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

Neu kompilieren, dann testen, testen und erneut testen. Viel Glück!

Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für die Änderung der Datenseitengröße von Innodb zur Optimierung von MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn