今日皆さんにお伝えしたいトピックは、「皆さんがよく話題にするテーブル スペースとは一体何でしょうか。データ テーブルとは一体何でしょうか。」です。 これは実際には概念的な知識ポイントであり、知識を拡張するものと見なす必要があります。必要なのは、関連する概念を理解し、関連するパラメータの印象を残すことだけです。 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 をエレガントに使用する方法
はじめに: MySQL では、CONCAT() 関数を使用して複数の文字列を 1 つの文字列に連結し...
1.ロックしますか? 1.1 ロックとは何ですか?ロックの本当の意味は、鍵またはコードで開くことがで...
CSS のモジュール ソリューションは、JS のモジュール ソリューションと同じくらい多く存在すると...
Docker コンテナのタイムゾーンがホストマシンと一致しているかどうかを確認するにはどうすればよい...
1.すべてのIPアドレスが3つのページa1.htm、a2.htm、a3.htmにアクセスするのを禁止...
目次序文1. 効果は図の通りです2. 具体的な実施手順1. Vuexの紹介2.webscoked実装...
Baidu の擬似静的の説明を引用します。擬似静的は、実際の静的に相対的です。通常、検索エンジンの使...
夜遅くまで何度も困難なシングルステップデバッグを行った後、ようやく理想的なブレークポイントを見つけま...
MySQL は比較的使いやすいリレーショナル データベースです。今日は、win10 システムを再イ...
自動プロジェクト展開は大企業やユニコーン企業でよく使用され、手動でプロジェクトを展開するよりも効率的...
Linux で大量のファイルを削除する効率をテストします。まず500,000個のファイルを作成する$...
テキストのレイアウトには、言語に応じていくつかの書式設定要件があります。たとえば、簡体字中国語では、...
現在のスクロール オフセットを html 要素の属性に追加することで、現在のスクロール位置に基づいて...
この記事では、弾幕効果を実現するためのネイティブjsの具体的なコードを参考までに共有します。具体的な...
目次1. Linuxシステムの操作レベルの概要2. 実行レベルを確認する3. 現在のシステムの動作レ...