今日皆さんにお伝えしたいトピックは、「皆さんがよく話題にするテーブル スペースとは一体何でしょうか。データ テーブルとは一体何でしょうか。」です。 これは実際には概念的な知識ポイントであり、知識を拡張するものと見なす必要があります。必要なのは、関連する概念を理解し、関連するパラメータの印象を残すことだけです。 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 をエレガントに使用する方法
目次要件の説明問題の説明問題分析問題解決質問の拡張要件の説明このプロジェクトでは、まずユーザーが質問...
目次ReactHook とは何ですか? Reactは現在フックを提供している1. 使用状態2.use...
目次序文1. NJSモジュールをインストールする方法1: NJSモジュールを動的にロードする方法2:...
目次1. オブジェクトをマップとして扱わない1. 未定義のプロパティはプロトタイプチェーンを通じてア...
コマンドを実行docker run -d --name consul -p 8500:8500 co...
この記事では、ローカル yum ソースを使用して CentOS 上に LAMP 環境を構築する方法に...
静的ウェブサイトをホストできるサーバーは数多くあります。この記事では、nginx、apache、to...
導入保存時と読み取り時に CHAR 型と VARCHAR 型の違いを本当にご存知ですか?まずいくつか...
リッチ テキスト コンポーネントは、Web プログラムで、特にブログやフォーラムなどの Web サイ...
多くのネットユーザーは、なぜ自分のウェブサイトはいつも色の問題を抱えていて、いつも地味に見え、注目を...
まず興味深い性質であるconic-gradientを紹介しましょう。円錐グラデーション!円グラフの作...
Linux ターミナルでファイルを操作しているときに、Linux コマンドライン エディターでファイ...
目次1. 条件付きアクセス属性2. アロー関数の紹介1. 条件付きアクセス属性?. は ES2020...
導入Binlog ログ、つまりバイナリ ログ ファイルは、データベースに対するユーザー操作の SQL...
目次1. ラベルステートメントの紹介2. ラベルステートメントの使用序文:日常の開発では、プログラム...