序文 MySQL は、myisam、innodb、memory、archive、example など、多くの種類のテーブル (つまり、ストレージ エンジン) をサポートしています。各ストレージ エンジンにはそれぞれ長所と短所があります。各ストレージ エンジンを十分に理解することで、それらを適切に使用できるようになります。同じデータベースで複数のストレージ エンジンを使用するとパフォーマンスに大きな影響が出ると考える人もいます。実際、これはまったく間違った考えです。実際、非常に単純なデータベースでない限り、1 つのストレージ エンジンのみを使用することは、アプリケーションのパフォーマンスにとって非常に悪い動作です。データベースを理解している人は、各テーブルのさまざまな機能に基づいて適切なストレージ エンジンを選択します。これが正しいアプローチです。 先ほども述べたように、MySQL には多くのストレージ エンジンがありますが、私が個人的に仕事で最もよく使用するストレージ エンジンは 2 つあります。1 つは InnoDB、もう 1 つは MyISAM です。ここでは、これら 2 つのストレージ エンジンについて説明し、それらの違いを比較します。 1. マイISAM MyISAM は現在、MySQL のデフォルトのストレージ エンジンです。テーブルの作成時にテーブル タイプを指定しない場合、MySQL はデフォルトで MyISAM を使用します。 MyISAM には、多くの人が非常に重要だと考えているが、役に立たないと思う機能があります。それは、MyISAM がオペレーティング システムからの独立性を表すという機能です。簡単に言えば、MyISAM テーブルを Windows から Linux へ、または Linux から Windows へ簡単に移行できます。これは確かに利点ですが、一定期間 1 つのオペレーティング システムを使用することを決定した後で、サーバーのオペレーティング システムを変更するほど愚かなテクニカル ディレクターがいるでしょうか。したがって、この利点には実質的な意味はないと思います。 MyISAM ストレージ エンジンは、MySQL コンポーネントの非常に重要な部分です。MySQL では、静的、動的、圧縮の 3 種類の MyISAM 形式テーブルを作成できます。形式を別途指定する必要はなく、MySQL はテーブル構造に基づいて最も適切な形式を自動的に選択します。 1. MyISAM 静的 テーブル内の各フィールドのデータ型定義が静的 (char など) である場合、MySQL は自動的に静的 MyISAM 形式を使用します。この形式のテーブルのパフォーマンスは非常に高く、クエリと更新にかかる時間は非常に短くなりますが、スペースを犠牲にする必要があることに注意してください。各列に最大スペースが割り当てられるため、スペースの一部が使用されていない場合でも、静的テーブルがより大きなスペースを占有することになります。 2. MyISAM ダイナミクス テーブル内の各フィールドのデータ型定義が動的 (varchar など) である場合、MySQL は自動的に動的 MyISAM 形式を使用します。このタイプの形式のテーブルのパフォーマンスは低下しますが、スペースの占有量は静的なテーブルよりもはるかに少なくなります。 3. MyISAM 圧縮 読み取り専用に設計されたテーブルがある場合は、MyISAM を使用してテーブルを圧縮できます。同じ構成では、パフォーマンスが最も速くなります。 2. バイナリ InnoDB は、デフォルトでトランザクションをサポートするトランザクション ストレージ エンジンです。そのため、銀行関連のプロジェクトなど、データの整合性に対する要件が高いプロジェクトでは、InnoDB がストレージ エンジンとして使用されます。 InnoDB では行レベルのロックも導入されています。その他のテーブル タイプはすべて完全にロックされます。つまり、ユーザーがテーブル内の自分の行の特定の情報を変更したい場合、データベースはまずテーブル全体をロックし、他のユーザーはこのテーブルを操作できなくなります。これが完全なテーブル ロックです。行レベルのロックは異なります。変更する行のみがロックされます。つまり、他の人はテーブルを操作できますが、ロックされた行のデータを操作することはできません。メリットは明らかです。より高速で、複数の同時更新要求を処理するのに特に適しています。 InnoDB では外部キー制約も導入されています。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Ubuntu20.04 VNCのインストールと設定の実装
目次JavaScriptでは、 forループを記述する一般的な方法がいくつかあります。最初の、そして...
リンクインスタイルとは、すべてのスタイルを 1 つ以上の外部スタイルシート ファイルに配置することで...
1. mycatとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベ...
目次概要コードの実装シングルトンパターンの簡易版改良版プロキシバージョンシングルトンモード遅延シング...
Linuxバージョンのアップグレード: 1. まず、Linuxオペレーティングシステムに付属するPy...
IE で CSS3 を使用して角を丸くする方法を探していたときに、例を見つけました。まだテストして...
1.MySQLのバージョン [root@clq システム]# mysql -v MySQL モニター...
<br />しばらくの間、多くの人が XHTML の使い方を知らないことに気付きました。...
MySQL が挿入などの操作を実行するときにコミットする必要があるかどうかは、ストレージ エンジン...
スロットとは何ですか?スロット ディレクティブは v-slot であり、現在 slot と slot...
1. MySQLを削除する a. sudo apt-get autoremove --purge m...
iPad でページをデバッグするにはどうすればいいですか? iOS 5 をご利用の場合、iPad の...
まず、マージン崩壊が発生する 3 つの状況を見てみましょう。 1. 隣接する 2 つのブロックレベル...
最初のクエリ テーブル構造 (sys_users): sys_users から * を選択します。最...
日常業務では、ログを表示する必要がよくあります。たとえば、 tail コマンドを使用してログをリアル...