MySQL MyISAM デフォルト ストレージ エンジンの実装原則

MySQL MyISAM デフォルト ストレージ エンジンの実装原則

デフォルトでは、MyISAM テーブルはディスク上に .frm (テーブル構造ファイル)、.MYD (データ ファイル)、.MYI (インデックス ファイル) の 3 つのファイルを生成します。

データ ファイルとインデックス ファイルを作成するときに、その保存場所を指定できます。これは MyISAM テーブルでのみサポートされます。

  • データディレクトリ [=] データが保存される絶対パス
  • INDEX DIRECTORY [=] インデックスファイルへの絶対パス

1つのMyISAMテーブルでサポートされるデータの最大量は、ジャンプレコードの2の64乗です。

各テーブルには最大 64 個のインデックスを作成できます。

複合インデックスの場合、各複合インデックスには最大16列が含まれ、インデックス値の最大長は1000Bです。

MyISAM エンジンのストレージ形式は次のとおりです。

  • 固定長(FIXED static):VARCHAR/TEXT/BLOBを含まないフィールドを参照します。
  • 動的: フィールドにVARCHAR/TEXT/BLOBが含まれている限り
  • 圧縮: muisampack が作成されました

InnoDB ストレージ エンジン:

設計は ACID モデルに準拠しており、トランザクションをサポートし、サービスクラッシュから回復する機能を備え、ユーザーデータを最大限に保護できます。

行レベルのロックをサポートし、複数のユーザーの同時読み取りおよび書き込みパフォーマンスを向上できます。

InnoDB には独自の独立したバッファ プールがあり、よく使用されるデータとインデックスがキャッシュされます。

INSERT、UPDATE、および DELETE 操作の場合、InnoDB は変更バッファリング メカニズムを使用して自動的に最適化し、一貫性のある読み取りを提供し、変更されたデータをキャッシュしてディスク I/O を削減し、パフォーマンスを向上させます。

InnoDB テーブルを作成すると、次の 2 つのファイルが生成されます。

  • .frm テーブル構造ファイル
  • .ibd データおよびインデックス保存テーブルスペース

すべてのテーブルは、できればAUTO_INCREMENTを使用して主キーを作成するか、頻繁にクエリされる列に主キーとして配置する必要があります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL ストレージ エンジン MyISAM と InnoDB の違いの概要
  • MySQLストレージエンジンのMyISAMとInnoDBの違いを詳しく説明
  • MySQL ストレージ エンジンの概要と MyISAM と InnoDB の違い
  • MySQL ストレージ エンジン InnoDB と MyISAM の違い
  • MySQL の MyISAM ストレージ エンジンにおける非クラスター化インデックスの詳細な説明

<<:  docker ストレージを使用して Exit を実行すると、サーバーへのファイルのアップロードが失敗する問題と解決策

>>:  非常に詳細な基本的なJavaScript構文ルール

推薦する

vue-qr を使用して Vue の QR コードを生成する方法について深く理解する

目次npm ダウンロードステップ(1)輸入(2)vue-qrパラメータ例要約する「QRコード」の英語...

MySql における無効な Null セグメント判定と IFNULL() 失敗の解決策

MySql Nullフィールド判定とIFNULL失敗処理ps: (プロセスを表示したくない場合は、S...

テーブルを開く際のMySQLスレッドの問題の解決方法

問題の説明最近、MySQL5.6.21サーバーがありました。アプリケーションがリリースされた後、同時...

ページ要素の絶対位置と相対位置に関するある程度の理解

今日から、定期的にちょっとした豆知識を整理していきます。簡単なものもあるかもしれませんが、どれも役に...

CentOS7 での PostgreSQL 11 の詳細なインストールと設定のチュートリアル

1. 公式ウェブサイトアドレス公式サイトではインストールの参考手順が紹介されています。公式サイトを見...

Navicat for MySQL 15 登録とアクティベーションの詳細なチュートリアル

1. Navicat for MySQL 15をダウンロードするhttps://www.navica...

Docker プライベート サーバー イメージを定期的にクリーンアップする方法

CI を利用してリリース用の Docker イメージをビルドすることで、全員のバージョンリリース効率...

フロントエンドとバックエンドを分離した nginx 構成を展開するための完全な手順

序文決まり文句です。ここでは、フロントエンドとバックエンドの分離についての私の理解についてお話ししま...

MySQL でデータ復旧に binlog を使用する方法

序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...

レスポンシブWebデザイン学習(3) - モバイルデバイスでのWebページのパフォーマンスを向上させる方法

序文モバイル デバイスでは、帯域幅とプロセッサ速度の制限により、Web ページのパフォーマンスに対す...

VueはSplitを使用して、ユニバーサルドラッグアンドスライドパーティションパネルコンポーネントをカプセル化します。

目次序文始める基本レイアウトデータバインディングイベントバインディング最適化ジッター問題を最適化する...

Vscode が Ubuntu にリモート接続する際のエラー問題の解決方法

1. 事件の背景:仕事上、Ubuntu への vscode リモート接続を使用する必要があります。 ...

Ubuntuがインターネットに接続できない場合の解決策

問題の説明:デスクトップ コンピューターとキャンパス ネットワークを使用して、有線モードでインターネ...

Linux 上の MariaDB は root ユーザーで起動します (推奨)

最近、セキュリティ製品をテストする必要があったため、mariadb の起動ユーザーを root に調...

MySQL 空間データストレージと関数

目次1. データ型1. MySQL空間データとは何か2. GeoJSONとは3. 空間データ型のフォ...