ホームページ  >  記事  >  データベース  >  Innodb のデータ ページ サイズを変更して MySQL を最適化する方法の詳細な例

Innodb のデータ ページ サイズを変更して MySQL を最適化する方法の詳細な例

怪我咯
怪我咯オリジナル
2017-07-05 11:22:291623ブラウズ

この記事では、Innodb のデータ ページ サイズを変更して MySQL を最適化する方法を主に紹介します。Innodb は MySQL の次に人気のあるデータ エンジンです。は 16K であり、システム内でこれを変更する方法はありません。将来的には、MySQL も Oracle のように複数のデータ ページ サイズをサポートできるようになることを願っています。

しかし、実際のアプリケーションでは、16K は少し大きすぎる場合があります。特に、Oracle または SQL SERVER が非常にうまく動作しているときに多くの企業が MySQL に移行し、IO の増加があまりにも明らかな場合は、データ ページの変更を検討します。 。 大なり小なり。

実際、innodb のデータ ページ サイズも変更できます。ソース コード レイヤーで変更してから MySQL を再構築するだけです。
変更方法:
(MySQL-5.1.38 ソース コードを例に挙げます)
場所は storage/innobase/
include
/univ.i です。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 はデータ ページ サイズで、デフォルトは 16K です。次の注釈は、この値がべき乗に設定できることを示しています。 2の。この値は 4k、8k、16k、32K、64K に設定できますが、大規模なアプリケーションでは意味がありません。 UNIV_PAGE_SIZEを同時に変更した後、UNIV_PAGE_SIZE_SHIFTの値を2の累乗にする必要があるため、データページの設定は次のようになります:

#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

例:
innodbのデータページを8Kに変更します。対応する変更は次のとおりです:

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

Re コンパイルしてからテストし、再度テストします。頑張ってください!

以上がInnodb のデータ ページ サイズを変更して MySQL を最適化する方法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。