ホームページ >バックエンド開発 >PHPチュートリアル >PHP 面接の質問 8: innoDB と myisam の違い
この記事では、PHP インタビューの 8 番目の質問で innoDB と myisam の違いを紹介します。これには、必要な友人が参照できるように共有します
InnoDB:
トランザクション処理などをサポートします。追加されません ロック読み取り
外部キーをサポート
行ロックをサポート
FULLTEXT型インデックスをサポートしません
テーブル内の特定の行数を保存せず、テーブルをスキャンして行数を計算します
テーブルをDELETEすると削除されます行を 1 つずつ
InnoDB はデータとインデックスを結合します テーブルスペースに保存されます
プラットフォーム間で直接コピーして使用できます
InnoDB には AUTO_INCREMENT タイプのフィールドのインデックスが含まれている必要があります
テーブルの圧縮は困難です
サポートしませんトランザクション、ロールバックは不完全なロールバックを引き起こし、アトミックではありません
外部キーをサポートしません
外部キーをサポートしません
全文検索をサポートします
どこを指定せずに、テーブル内の特定の行数を保存し、保存された行数を直接返しますrows
テーブルをDELETEする場合は、まずテーブルを削除してからテーブルを再構築します
MyISAMテーブルは3つのファイルに保存されます。 frm ファイルにはテーブル定義が保存されます。 データファイルはMYD(MYData)です。 インデックス ファイルは MYI の拡張子 (MYIndex) です
プラットフォーム間で直接コピーするのは困難です
MyISAM では、AUTO_INCREMENT 型のフィールドを使用して結合インデックスを作成できます
テーブルを圧縮できます
MyISAM は比較的シンプルなので、システムの読み取り量が多く、書き込み量が少ない場合、効率の点では InnoDB よりも優れています。低い原子性要件。その場合、MyISAM が最良の選択です。そしてMyISAMの回復速度も速いです。直接上書きしたり、バックアップで復元したりできます。
特に同時書き込みが多い場合、システムの読み取りが減り、書き込みが増える場合。 InnoDB が第一の選択肢です。
どちらのタイプにも独自の長所と短所があります。どちらを選択するかは、あなたの実際のタイプによって異なります。
トランザクション処理などをサポートします
ロックなしの読み取り
外部キーをサポート
行ロックをサポート
FULLTEXT型インデックスをサポートしません
テーブル内の特定の行数を保存せず、テーブルをスキャンして行数を計算します行がある
テーブルをDELETEすると、行ごとに削除されます
InnoDBはテーブルスペースにデータとインデックスを保存します
クロスプラットフォームで直接コピーして使用できます
InnoDBにはAUTO_INCREMENT型フィールドのインデックスが含まれている必要があります
テーブルは難しい
MyISAM:
外部キーをサポートしません。
特定の番号を保存します。 where を指定しないと、保存された行の数が直接返されます。まずテーブルを削除し、次にテーブルを再構築します。MyISAM テーブルは 3 つのファイルに保存されます。 frm ファイルにはテーブル定義が保存されます。 データファイルはMYD(MYData)です。 インデックス ファイルは MYI の拡張子 (MYIndex) です
プラットフォーム間で直接コピーするのは困難です
MyISAM では、AUTO_INCREMENT 型のフィールドを使用して結合インデックスを作成できます
テーブルを圧縮できます
次を選択してください
MyISAM は比較的シンプルなので、システムの読み取り量が多く、書き込み量が少ない場合は、効率が InnoDB よりも優れています。低い原子性要件。その場合、MyISAM が最良の選択です。そしてMyISAMの回復速度も速いです。直接上書きしたり、バックアップで復元したりできます。
特に同時書き込みが多い場合、システムの読み取りが減り、書き込みが増える場合。 InnoDB が第一の選択肢です。
どちらのタイプにも独自の長所と短所があります。どちらを選択するかは、実際のタイプによって異なります。
php インタビューの質問 7: nginx で負荷分散を構成する方法
以上がPHP 面接の質問 8: innoDB と myisam の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。