MySQLは、データをテーブルに格納しSQLを話す、広く使われているオープンソースのリレーショナルデータベースです。プラグイン可能なstorage engine(ストレージエンジン)アーキテクチャを採用しており、選択したエンジンによって行がどのように格納・ロック・リカバリされるかが決まります。
InnoDB(デフォルト)
MySQL 5.5以降、InnoDBがデフォルトであり、ほとんどの用途で正しい選択です。
MySQLは、データをテーブルに格納しSQLを話す、広く使われているオープンソースのリレーショナルデータベースです。プラグイン可能なstorage engine(ストレージエンジン)アーキテクチャを採用しており、選択したエンジンによって行がどのように格納・ロック・リカバリされるかが決まります。
MySQL 5.5以降、InnoDBがデフォルトであり、ほとんどの用途で正しい選択です。
COMMIT/ROLLBACKによる完全なACID。-- Engine is chosen per table; check what you have:
SELECT table_name, engine
FROM information_schema.tables
WHERE table_schema = 'shop';
-- +------------+--------+
-- | orders | InnoDB | -- transactional, row locks
-- | old_logs | MyISAM | -- legacy, table locks
-- +------------+--------+
CREATE TABLE orders (id INT PRIMARY KEY) ENGINE = InnoDB; -- be explicit
エンジンを選ぶことは、正しさと並行性の保証を選ぶことです。データを書き込み、トランザクションや外部キーを必要とするあらゆるアプリケーションではInnoDBを使ってください。今日MyISAMに手を伸ばすのは、たいてい実利のないままテーブルロックとクラッシュ安全性の欠如を引き継ぐことを意味します。
ジュニアからシニアまで、詳細な回答付きのIT面接質問ライブラリ。
寄付する