まず、MySQL InnoDB エンジンのストレージ形式に関する重要なポイントをいくつか紹介します。 1. InnoDB では、共有テーブルスペースまたは独立テーブルスペースを選択できます。管理とメンテナンスを容易にするために、独立テーブルスペースを使用することをお勧めします。 2. InnoDB データ ページのデフォルト サイズは 16KB です。バージョン 5.6 以降では、新しいオプション 3. InnoDB データ ページに新しいデータが書き込まれると、スペースの 1/16 が予約されます。予約されたスペースは、その後の新しいレコードの書き込みに使用できるため、新しいデータ ページを頻繁に追加することによるオーバーヘッドが削減されます。 4. 各データ ページには少なくとも 2 行のレコードを格納する必要があります。したがって、行レコードの最大長は理論上は 8 KB ですが、格納する InnoDB 内部データ構造がいくつかあるため、実際にはこれより小さくなります。 5. InnoDB のストレージ方式の制限により、データが順次書き込まれる場合、データ ページの理想的な充填率は 15/16 ですが、完全な順次書き込みを保証することは通常不可能です。そのため、データ ページの充填率は一般的に 1/2 から 15/16 になります。したがって、新しいレコードをできるだけ順番に書き込めるように、各 InnoDB テーブルに自動インクリメント列を主キーとして設定するのが最適です。 6. データ ページの充填率が 1/2 未満になると、InnoDB はそれを縮小して空き領域を解放します。 7. MySQL 5.6 の InnoDB エンジンは現在、 8. COMPACT 行形式では、REDUNDANT と比較して約 20% のストレージ スペースを節約でき、COMPRESSED では COMPACT と比較して約 50% のストレージ スペースを節約できますが、TPS は 90% 低下します。したがって、COMPRESSED 行形式の使用は強く推奨されません。 9. 行形式が DYNAMIC または COMPRESSED の場合、TEXT/BLOB などの長い列 (特定の状況によっては、必ずしも TEXT/BLOB 型だけでなく、他の長い列である場合もある長い列) は独立したデータ ページに完全に保存され、クラスター化インデックス ページは新しいページを指すために 20 バイトのポインターのみを使用します。これはいわゆるオフページであり、ORACLE の行移行に似ていますが、大量のディスク領域を浪費し、I/O パフォーマンスが低下します。したがって、長さが 255 を超える BLOB、TEXT、または VARCHAR 列タイプを使用しないことを強くお勧めします。 10. InnoDB ファイル形式 ( 11. オフページに格納されている BLOB、TEXT、または long VARCHAR 列のページは排他的であり、共有できません。したがって、テーブル内で複数の長い列を使用することは強くお勧めしません。 要約すると、実際のビジネスで InnoDB テーブルに BLOB、TEXT、または長い VARCHAR 列を保存する必要がある場合は、次の提案があります。 1. 複数のオフページを回避するために、すべてのデータをシリアル化して圧縮し、同じ列に保存するようにしてください。 2. 実際の最大格納長が 255 未満の列を 3. すべての列を 1 つの列に統合できない場合は、2 番目の選択肢として、各列の最大長に応じて複数のサブテーブルに分割することができます。オフページの頻度を減らすために、各サブテーブルの合計行長を 8KB 未満にするようにしてください。 4. 上記の提案は、データ ページがデフォルトの 16 KB であるという前提に基づいています。8 KB または他のサイズに変更する場合は、上記の理論に基づいて自分でテストし、最も適切な値を見つけてください。 5. 文字列の長さが 255 未満の場合、CHAR または VARCHAR がストレージに使用されているか、または VARCHAR 列の長さが 255 に定義されているかに関係なく、実際の表スペースは増加しません。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: PHP の問題により、Zabbix モニタリングでグラフィカル インターフェイスに中国語の文字化けが発生する問題を解決する方法
>>: Rx レスポンシブプログラミングについての簡単な説明
目次1. オフラインインストール2. オンラインインストール3. アンインストール4. ymlファイ...
共通点: DIV タグと SPAN タグは、コンテンツ全体を非表示にしたり、コンテンツ全体を移動した...
目次1. 問題を発見する2.重複したデータを残さずにすべて削除する3. 削除テーブルから重複データを...
目次実装のアイデアアカウント パスワードを保存する方法は 3 つあります。機能インターフェースアカウ...
プロジェクトでは https サービスを使用する必要があるため、Alibaba Cloud では無料...
1. 問題の説明: MysqlERROR1698 (28000) の解決方法、新しくインストールされ...
目次実際の戦闘プロセスまずは主なコマンドと詳細を一つずつ説明しましょう起動が成功したかどうかを確認す...
この記事では、参考までに、計算機を実装するためのWeChatアプレットの具体的なコードを紹介します。...
バージョン 0.6 あたりで、Docker に privileged が導入されました。このパラメー...
MySql ダウンロード1. 公式サイトを開き、ダウンロード パスを見つけます。ダウンロード アドレ...
序文:デジタル加算ボタンと減算ボタンの実装には、次のような多くのソリューションがこれまでに使用されて...
<br />作業を簡単に完了できる Web ページ作成ツールは数多くありますが、HTML...
1. インストール1. ダウンロードMySQLをダウンロードするには、MySQL公式サイトhttp:...
この記事では、CentOS 7 で高可用性 Hadoop 2.10 クラスターを構築する方法を紹介し...
コードをコピーコードは次のとおりです。 li {幅:300px; 高さ:23px; 行の高さ:24p...