今日皆さんにお伝えしたいトピックは、「皆さんがよく話題にするテーブル スペースとは一体何でしょうか。データ テーブルとは一体何でしょうか。」です。 これは実際には概念的な知識ポイントであり、知識を拡張するものと見なす必要があります。必要なのは、関連する概念を理解し、関連するパラメータの印象を残すことだけです。 1. テーブルとは何ですか? MySQL を使用したことがある人なら誰でも、MySQL のデータがデータ テーブルに保存されることを直感的に知っています。 たとえば、Update SQL は次のようになります。 ユーザーを更新し、username = 'Daydream'、id = 999 に設定します。 ユーザーデータテーブル内のID 1のレコードのユーザー名列を「Daydream」に変更します。 ここでのユーザーは実際にはデータ テーブルです。もちろん、これは重要な点ではありません。私が言いたいのは、データ テーブルは実際には論理的な概念であるということです。以下で説明するテーブル スペースは物理的な概念です。 2. テーブルスペースとは何ですか? 「InnoDB ストレージ エンジンでは、データはテーブルスペースに従って整理され、保存されます。」という文章を見たことがあるでしょうか。実際、そこには次の意味があります。テーブルスペースは、実際の物理ファイルであるテーブルスペース ファイルです。 MySQL はこのように設計および設定されているため、なぜテーブルスペースと呼ばれるのか、またなぜテーブルスペースがディスク上の物理ファイルに対応するのかについて心配する必要はありません。概念をそのまま受け入れてください。 MySQL には多くの種類のテーブルスペースがあります。一緒に見ていきましょう。 3. sysテーブルスペース MySQL システム テーブルスペースは次のように表示できます。 値の部分は、名前:サイズ:属性で構成されます。 デフォルトでは、MySQL は ibdata1 という名前のファイルを 12MB のサイズで初期化し、データの増加に応じて自動的に拡張します。 この ibdata1 ファイルは、システム テーブルスペース、デフォルト テーブルスペース、デフォルト テーブルスペースの物理ファイル、および一般的な共有テーブルスペースです。
4. sysテーブルスペースを構成する システムテーブルスペースの数とサイズは、起動パラメータ innodb_data_file_path で設定できます。 # 私の.cnf [mysqld] innodb_data_file_path=/dir1/ibdata1:2000M;/dir2/ibdata2:2000M:自動拡張 5. テーブルごとのファイル テーブルスペース 各データベース テーブルに個別のテーブルスペース ファイルを持たせたい場合は、パラメータ innodb_file_per_table を使用して設定できます。
設定ファイルを通じて [mysqld] innodb_file_per_table=オン 次のコマンドを使用することもできます mysql> SET GLOBAL innodb_file_per_table=ON; これを ON に設定すると、InnoDB ストレージ エンジンによって生成されたテーブルには、独自の独立したテーブルスペース ファイルが含まれるようになります。 独立テーブルスペースファイルの命名規則: テーブル名.ibd 知らせ:
私のテーブルスペースファイルを確認してください: 最後に、テーブルごとにこのファイルの利点と欠点を簡単に説明しましょう。 アドバンテージ:
欠点: これは fsync システム コールに適していません。テーブルスペース ファイルを使用する場合、1 回のシステム コールでデータのフラッシュを完了できますが、テーブルスペース ファイルを複数に分割する場合は、元の fsync は、関係するすべての表領域ファイルに対して実行される fsync になり、fsync の数が増加する可能性があります。 6. 一時テーブルスペース 一時表領域は、ユーザーによって作成された一時表とディスク上の内部一時表を格納するために使用されます。 パラメータ innodb_temp_data_file_path は、以下に示すように、一時表領域の名前、サイズ、および仕様属性の一部を定義します。 一時テーブルスペースファイルが保存されているディレクトリを表示します 7. UNDO表領域 undolog について聞いたことがあると思います。プログラムがトランザクションをロールバックする場合、基盤となる MySQL は実際にこれらの undo 情報を通じてロールバックを支援します。 MySQL 設定には、undolog ログ ファイルを保存するために特別に使用できるテーブル スペースがあります。 ただし、MySQL 設定では、undolog はデフォルトでシステム テーブルスペースに配置されます。 MySQL が新しくインストールされた場合は、次のコマンドを実行して MySQL UNDO テーブルスペースの使用状況を表示できます。 ご覧のとおり、MySQL には 2 つの UNDO ログ テーブルスペースがあります。 つまり、UNDO はデフォルトのシステム表領域から UNDO ログ専用表領域に転送されます。 では、デフォルト構成を使用して、UNDO ログをシステム テーブルスペースに配置する必要がありますか?それとも、UNDO 表領域に配置する必要がありますか? これは実際には、サーバーが使用するストレージ ボリュームの種類によって異なります。 SSD ストレージを使用する場合は、UNDO 情報を UNDO 表領域に保存することをお勧めします。 上記はMySQLテーブルスペースとは何かについての詳細な内容です。MySQLテーブルスペースの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
>>: JS で async await をエレガントに使用する方法
OOM は「Out Of Memory」の略で、メモリオーバーフローを意味します。メモリ オーバーフ...
<テンプレート> <div class="demo">...
<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...
企業が Docker 自動デプロイメントを構築する場合、Docker の実行時にコンテナ内の設定ファ...
この記事は、「24 Days of Linux Desktop」の特別シリーズの一部です。 Open...
XiaobaiはVueについて学び、次にwebpackについて学び、そしてさまざまなものをインストー...
MySQL における一般的な utf8mb4 ソート規則は次のとおりです。 utf8mb4_0900...
スタートアップ企業は、型破りな仕事のやり方、ユニークなビジネスモデル、特徴的な製品やサービス、パーソ...
Web ページでは、あるページに情報を入力すると、別のページにジャンプし、入力した情報が別のページ...
1. フォントを実行し、フォント フォルダーを開いて、使用するフォント ファイルを見つけます。 2....
数日前、Google Reader で Yu Bo さんが共有した投稿「空のパスがページのパフォーマ...
環境システム: Ubuntu 18.04ソフトウェア: qt5.12.8 1. インストールパッケー...
この記事はMySQL 8.0に基づいていますこの記事では、日付と時刻の操作のための MySQL 関数...
目次01 非表示の列を作成する02 非表示の列に対する基本操作03 非表示の列メタデータ04 主キー...
ページでビデオ タグを使用する場合は、Ogg Theora または VP8 (これに問題がない場合)...