そのため、my.iniでこの値を設定して、innodb_page_sizeを32kに増やしてみました。
innodb_page_size=32k
次に、MySqlサービスを停止して再起動しました。 Winのサービスは次のようになります。
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL56
そして私は正しいファイルを編集して保存しました:
しかし、変数を HeidiSql で見ると、16kの標準値が表示されます。
私は何が間違っているのかわかりません...どんな助けでもありがたいです!
innodb_page_size のMySQLドキュメントによると、段落2
innodb_page_sizeは、MySQLインスタンスを初期化する前にのみ設定でき、後で変更することはできません。値が指定されていない場合、インスタンスはデフォルトのページサイズを使用して初期化されます。セクション14.6.1「InnoDB起動設定」を参照してください。
最初にデータベースを作成してmysqldを初めて起動した日にmy.ini
でその値を初期化する必要がありました。その後mysqldを再起動しても、これを変更することはできません。
innodb_page_size の新しいサイズでMySQLインスタンスを作成する場合
my.ini
でinnodb_page_sizeを32768に設定しますmy.ini
および新しいdatadir
に対してmysqldを起動しますそれを試して教えてください!!!
警告
ディスクI/Oの変更に注意してください。 同じ文書の段落 は言う:
デフォルトの16kページサイズは、広範囲のワークロード、特にテーブルスキャンを伴うクエリや、一括更新を伴うDML操作に適しています。 OLTP単一のページに多くの行が含まれる場合に競合が問題になる可能性がある、小さな書き込みが多く含まれるワークロードの場合、ページサイズが小さい方が効率的です。SSDストレージデバイスでは、小さいページも効率的です。小さなブロックサイズを使用します。InnoDBページサイズをストレージデバイスのブロックサイズに近づけると、ディスクに再書き込みされる変更されていないデータの量が最小になります。一般的なI/Oチューニングのアドバイスについては、セクション8.5.8「InnoDBディスクI/Oの最適化」を参照してください。 」。
非標準のページサイズが特に必要な場合は、聞かせてください。私は何千ものレビューをしましたが、誰かがその設定を変更した1つのケースを思い出せません。さらに、変更のユースケースを考えるのは難しいと思います。いくつかの提案されたユースケースは、標準から逸脱することを邪魔するほど十分に利益をもたらす可能性は低いです。
これについてさらに説明するには、ディスクの特性(SSD対HDD、RAID、ハードウェアブロックサイズなど)、インデックスの特性(UUID、範囲スキャン、ポイントクエリなど)、レコードサイズ(およびそれが異なるサイズにならない理由)を含めます。 。
UUID + SSDは、より小さなpage_sizeの恩恵を受ける可能性があります。
通常、大きなレコードサイズは、より大きなページサイズに頼るのではなく、垂直分割によって分割できます。