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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: フォームから Vue ElementUI を使用してログイン効果を実装する例
>>: EclipseでTomcatを作成する原理の詳細な説明
目的リクエスト アクセス ボリュームを制御するための Nginx ngx_http_limit_co...
数日前、図書館はサーバー(Ubuntu 14.04)にセキュリティ上の脆弱性があり、時間通りに修復さ...
序文一部の CSS 相互作用の影響により、要素に設定されたz-index実際のサイズに応じて重ね合わ...
目次1. 需要2. データベース設計3.Javaバックグラウンド構成の実装4. WeChatアプレッ...
整合性制約整合性制約はテーブル データの正確性を保つためのものです。データが正しくない場合は、そもそ...
1. PAM設定ファイルを編集する sudo vim /etc/pam.d/ログイン2行目に以下を...
変更後: innodb_buffer_pool_size=576M ->256M InnoDB...
目次リストレンダリングキーの原理と機能主要原則の分析キーの役割要約するリストレンダリングキーの原理と...
/etc/fstabパーティション/ディスクを自動的にマウントし、マウントするパーティション/デバイ...
Oracle と MySQL の高可用性ソリューションについては、以前からまとめたいと思っていたので...
目次1. 場所/マッチング2. 場所 = / 一致Locaitonには、完全一致(=)、プレフィック...
GreaseMokey (中国語では Grease Monkey Script と呼んでいます) は...
MySql Nullフィールド判定とIFNULL失敗処理ps: (プロセスを表示したくない場合は、S...
secure_file_priv = ' ';管理者としてcmdを実行します。 my...
この記事では、Mysql WorkBenchのインストールと設定のグラフィックチュートリアルを参考ま...