序文 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のインストールと設定の実装
現在、このような要件があります。ログインした人がカスタマー サービス担当者である場合、注文は「このカ...
目次1. カプセル化API 2. グローバルツールコンポーネントを登録する3. グローバル関数をカプ...
コードをコピーコードは次のとおりです。 .sugLayerDiv{位置:相対; overflow:h...
目次キャンバス関連文書エフェクト画像表示ケースの完全なコード親コンポーネントコードサブコンポーネント...
準備Windows Server 2008 R2 Enterprise (2.40GH、8GB、64...
目次歴史pushState() メソッドpushState() の使用シナリオreplaceStat...
サーバーとデータベースの構築方法を学ぶ必要があるため、最近は SQL 言語を独学で学び始めました。デ...
XHTML には多くのタグがありますが、頻繁に使用されるのはごくわずかであり、習得する必要があるのは...
MySQL 5.7.17、現在最新バージョンのようです、ダウンロードアドレスここで、プラットフォーム...
<br />外交部などの中央政府機関、各レベルの地方政府、その他の国家機関や部門が率先し...
日々の最適化プロセス中に、奇妙なことに気付きました。同じ SQL にまったく異なる 2 つの実行プラ...
1. コマンドの紹介passwd コマンドは、ユーザー パスワード、アカウント ロック、パスワードの...
序文scp は secure copy の略です。scp は、Linux システムの ssh ログイ...
目次1 データベース インデックスを作成するための一般的なルールは次のとおりです。 2. 数千万件の...
MySQL 5.5 のインストールと設定方法のグラフィックチュートリアルMySQL 5.5 のインス...