今日皆さんにお伝えしたいトピックは、「皆さんがよく話題にするテーブル スペースとは一体何でしょうか。データ テーブルとは一体何でしょうか。」です。 これは実際には概念的な知識ポイントであり、知識を拡張するものと見なす必要があります。必要なのは、関連する概念を理解し、関連するパラメータの印象を残すことだけです。 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 をエレガントに使用する方法
登録するフロントエンドは、vue の axios を使用して値を渡し、取得したアカウントとパスワード...
明らかな HTML、隠された「公開スクリプト」 Web ページのダウンロード時間を短縮する鍵は、フ...
1. 要件Vue.js フレームワークを使用してフロントエンド プロジェクトを開発する場合、サーバ...
Linux で実行可能プログラムまたは so の依存ライブラリを表示します。 Linux の実行可能...
Harbor は、Docker イメージを保存および配布するためのエンタープライズ レベルのレジスト...
最近、複数のdivにあるテーブルのTDを同じ幅に調整しても、揃えることができず、幅にパターンがないこ...
1. スケジュールタスクを作成する命令crontab -eは現在のユーザーの編集インターフェースに入...
序文パーティション フィールドは主キーの一部でなければならないことは誰もが知っています。では、複合主...
この記事では、アコーディオン効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...
目次SQL文を挿入する前にレコードが既に存在するかどうかを確認するSQL挿入時の判断の簡単なコレクシ...
コンストラクタの借用この手法の基本的な考え方は単純です。サブタイプ コンストラクター内からスーパータ...
最近、MySQL を使用してテーブル データを Excel ファイルにエクスポートしました。MySQ...
数十 MB 程度の小さいものから 1G 以上の大きいものまで、ビデオ ファイルなどのファイルのアップ...
公式サイトからMySQL-5.7.11-winx64の圧縮版をダウンロード。インストール後、パスワー...
序文継続的なコード配信のプロセスで、Jenkins を利用して Docker イメージを作成すると、...