web-dev-qa-db-ja.com

MySQL:ページとは何ですか?

MySQLデータベースのコンテキストで、ページが何であるかを思い出すことはできません。ページあたり8 KBのようなものが表示された場合、それは1行あたり8 KBを意味するのでしょうか、それとも...?

37
Matty

データベースページは、データベースファイルのデータを整理するための内部の基本構造です。以下は、InnoDBモデルに関する情報です。

から 13.2.11.2。ファイルスペース管理

構成ファイルで定義するデータファイルは、InnoDBテーブルスペースを形成します。ファイルは論理的に連結されてテーブルスペースを形成します。 [...]テーブルスペースは、デフォルトサイズが16KBのデータベースページで構成されます。ページは、サイズ1MB(連続する64ページ)のエクステントにグループ化されます。テーブルスペース内の「ファイル」は、InnoDBではセグメントと呼ばれます。

そして 13.2.14。InnoDBテーブルの制限 から

InnoDBのデフォルトのデータベースページサイズは16KBです。コードを再コンパイルすることにより、コードを8KBから64KBの範囲の値に設定できます。

さらに、ページに関連して配置するには

行の最大長は、可変長列(VARBINARY、VARCHAR、BLOB、およびTEXT)を除いて、データベースページの半分よりわずかに短いです。つまり、行の最大長は約8000バイトです。 LONGBLOBおよびLONGTEXT列は4GB未満である必要があり、BLOBおよびTEXT列を含む行の全長は4GB未満である必要があります。

22
MicSim

上手、

それは実際にはMySqlに関する問題ではなく、メモリ管理における一般的なページサイズについての問題です。

あなたはそれについてここで読むことができます: http://en.wikipedia.org/wiki/Page_(computer_memory)

交換/保存されるデータの最小単位を単に置くだけです。

デフォルトのページサイズは4kで、おそらくこれで十分です。

データセットが大きい場合、または書き込み操作が非常に少ない場合は、ページサイズを大きくするとパフォーマンスが向上する可能性があります。

ここを見てください: http://db.Apache.org/derby/manuals/tuning/perf24.html

どうして?より多くのデータを一度にフェッチ/アドレス指定できるからです。目的のデータがフェッチしたデータのすぐ近く、またはその直後にある可能性が高い場合(まあ、実際には3dスペースではないが、私が理解していると思います)、1回の操作でデータをフェッチできます。また、一般的にハードドライブから、いくつかのキャッシングおよびデータフェッチテクノロジーを利用します。

しかし、反対に、ページサイズを満たしていないか、少しだけまたはそれ以上のデータがある場合は、スペースを浪費します。

個人的には、ページサイズの調整が重要であるというケースはありませんでした。パフォーマンスを最適化するための優れたアプローチは常にありましたが、そうでない場合でも、すでに十分に高速でした。

20
The Surrican

これは、データがディスクおよびメモリに格納/読み取り/書き込みされるサイズです。

さまざまなページサイズは、さまざまな作業負荷/データセットに対してより良くも悪くも機能します。つまり、ページあたりの行数を増やしたり、ページあたりの行数を減らしたりする必要がある場合があります。そうは言っても、ほとんどのアプリケーションではデフォルトのページサイズで十分です。

「ページ」はMySQLに固有のものではないことに注意してください。これは、すべてのデータベースのパラメーターの側面です。

5
Riedsio