MySQLのお勉強!

MySQL TOP

MySQL 用語集

これらの用語は、MySQL データベースサーバーに関する情報で一般的に使用されます。この用語集は、InnoDB ストレージエンジンに関する用語のリファレンスとして作成され、大部分の定義は InnoDB 関連です。

.

.ARM ファイル

ARCHIVE テーブルのメタデータ。.ARZ ファイルと対比してください。この拡張子を持つファイルは常に、MySQL Enterprise Backup 製品の mysqlbackup コマンドで生成されるバックアップに含められます。

.ARZ ファイル, MySQL Enterprise Backup, mysqlbackup コマンドも参照

.ARZ ファイル

ARCHIVE テーブルのデータ。.ARM ファイルと対比してください。この拡張子を持つファイルは常に、MySQL Enterprise Backup 製品の mysqlbackup コマンドで生成されるバックアップに含められます。

.ARM ファイル, MySQL Enterprise Backup, mysqlbackup コマンドも参照

.cfg ファイル

InnoDB トランスポータブルテーブルスペース機能で使用するメタデータファイル。これは、コマンド FLUSH TABLES ... FOR EXPORT で生成され、1 つまたは複数のテーブルを、別のサーバーにコピーできる一貫した状態にします。.cfg ファイルは、対応する .ibd ファイルとともにコピーされ、ALTER TABLE ... IMPORT TABLESPACE ステップ中に space ID などの .ibd ファイルの内部値を調整するために使用されます。

.ibd ファイル, スペース ID, トランスポータブルテーブルスペースも参照

.frm ファイル

MySQL テーブルのメタデータ (テーブル定義など) を含むファイル。

バックアップの場合、バックアップ後に変更または削除されたテーブルをリストアできるように、バックアップデータとともに .frm ファイルの完全セットを常に保持する必要があります。

それぞれの InnoDB テーブルには .frm ファイルがありますが、InnoDB は独自のテーブルメタデータをシステムテーブルスペースに保持しています。InnoDB が InnoDB テーブルを処理する場合、.frm ファイルは不要です。

これらのファイルは、MySQL Enterprise Backup 製品によってバックアップされます。バックアップが行われている間にこれらのファイルを ALTER TABLE 操作で変更してはいけないため、InnoDB でないテーブルを含むバックアップは .frm ファイルのバックアップ中に、FLUSH TABLES WITH READ LOCK 操作を実行してこのようなアクティビティーをフリーズします。バックアップをリストアするときに、バックアップ時点のデータベースの状態に一致するように、.frm ファイルが作成、変更、または削除される場合があります。

MySQL Enterprise Backupも参照

.ibd ファイル

file-per-table モードを使用して作成された各 InnoDB テーブルは、データベースディレクトリ内で、.ibd 拡張子の専用のテーブルスペースファイルに書き込まれます。このファイルにはテーブルデータと、テーブルのインデックスが含まれます。innodb_file_per_table オプションで制御される file-per-table モードは、InnoDB ストレージの使用法およびパフォーマンスの多くの側面に影響し、MySQL 5.6.7 以降でデフォルトで有効になっています。

この拡張子は、ibdata ファイルから構成されるシステムテーブルスペースには適用されません。

MySQL Enterprise Backup 製品によって .ibd ファイルが圧縮バックアップに含まれるとき、圧縮版は .ibz ファイルです。

MySQL 5.6 以降で DATA DIRECTORY = 句を使用してテーブルが作成された場合、.ibd ファイルは、通常のデータベースディレクトリの外部に置かれ、.isl ファイルによってポイントされます。

データベース, file-per-table, ibdata ファイル, .ibz ファイル, インデックス, innodb_file_per_table, .isl ファイル, MySQL Enterprise Backup, システムテーブルスペース, テーブル, テーブルスペースも参照

.ibz ファイル

MySQL Enterprise Backup 製品が圧縮バックアップを実行するときに、これは、file-per-table 設定を使用して作成される各テーブルスペースファイルを、.ibd 拡張子から .ibz 拡張子に変換します。

バックアップ中に適用される圧縮は、通常操作中にテーブルデータを圧縮されたままにする圧縮行フォーマットとは異なります。圧縮バックアップ操作では、すでに圧縮行フォーマットであるテーブルスペースについては圧縮ステップをスキップします。2 回目の圧縮では、バックアップ速度を低下させるだけで、ほとんどまたはまったく領域を節約しないためです。

圧縮バックアップ, 圧縮行フォーマット, file-per-table, .ibd ファイル, MySQL Enterprise Backup, テーブルスペースも参照

.isl ファイル

MySQL 5.6 以降の DATA DIRECTORY = 句で作成された InnoDB テーブルの、.ibd ファイルの場所を指定するファイル。これは、実際のシンボリックリンクメカニズムのプラットフォーム制限なしで、シンボリックリンクのように機能します。データベースディレクトリ外部 (たとえば、テーブルの使用状況に応じて特別に大きなまたは高速なストレージデバイス) に InnoDB テーブルスペースを格納できます。詳細は、セクション14.5.4「テーブルスペースの位置の指定」を参照してください。

データベース, .ibd ファイル, テーブル, テーブルスペースも参照

.MRG ファイル

MERGE ストレージエンジンで使用される、ほかのテーブルへの参照を含むファイル。この拡張子を持つファイルは常に、MySQL Enterprise Backup 製品の mysqlbackup コマンドで生成されるバックアップに含められます。

MySQL Enterprise Backup, mysqlbackup コマンドも参照

.MYD ファイル

MyISAM テーブルのデータを格納するために MySQL が使用するファイル。

.MYI ファイル, MySQL Enterprise Backup, mysqlbackup コマンドも参照

.MYI ファイル

MyISAM テーブルのインデックスを格納するために MySQL が使用するファイル。

.MYD ファイル, MySQL Enterprise Backup, mysqlbackup コマンドも参照

.OPT ファイル

データベース構成情報を含むファイル。この拡張子を持つファイルは常に、MySQL Enterprise Backup 製品の mysqlbackup コマンドで生成されるバックアップに含められます。

MySQL Enterprise Backup, mysqlbackup コマンドも参照

.PAR ファイル

パーティション定義を含むファイル。この拡張子を持つファイルは常に、MySQL Enterprise Backup 製品の mysqlbackup コマンドで生成されるバックアップに含められます。

MySQL Enterprise Backup, mysqlbackup コマンドも参照

.TRG ファイル

トリガーパラメータを含むファイル。この拡張子を持つファイルは常に、MySQL Enterprise Backup 製品の mysqlbackup コマンドで生成されるバックアップに含められます。

MySQL Enterprise Backup, mysqlbackup コマンド, .TRN ファイルも参照

.TRN ファイル

トリガー名前空間情報を含むファイル。この拡張子を持つファイルは常に、MySQL Enterprise Backup 製品の mysqlbackup コマンドで生成されるバックアップに含められます。

MySQL Enterprise Backup, mysqlbackup コマンド, .TRG ファイルも参照

2

2 フェーズコミット

XA 仕様に基づく分散型トランザクションの一部である操作。(2PC と略記されることがあります。)複数のデータベースがトランザクションに参加する場合、すべてのデータベースが変更をコミットするか、すべてのデータベースが変更をロールバックします。

コミット, ロールバック, トランザクション, XAも参照

A

ACID

原子性 (atomicity)、一貫性 (consistency)、分離性 (isolation)、持続性 (durability) を表す頭字語。これらの特性はすべてデータベースシステムで望ましく、すべてトランザクションの概念に密接に結び付けられています。InnoDB のトランザクション機能は、ACID の原則に準拠しています。

トランザクションは、コミットまたはロールバックできる原子的な作業単位です。トランザクションによってデータベースに複数の変更が行われた場合、トランザクションがコミットされるとすべての変更が完了し、トランザクションがロールバックされるとすべての変更が元に戻されます。

データベースは、それぞれのコミットまたはロールバックのあとでも、トランザクションの進行中でも、常に一貫した状態を保ちます。関連データが複数のテーブルにわたって更新されている場合、クエリーは、古い値と新しい値の混合ではなく、すべて古い値か、すべて新しい値のどちらかを見ます。

トランザクションは進行中、互いから保護 (分離) されます。それらは互いに干渉できず、互いのコミットされていないデータを見ることはできません。この分離性は、ロックメカニズムを通じて実現します。経験豊富なユーザーは、実際にトランザクションが互いに干渉しないと確信できれば、パフォーマンスと並列性の向上の代わりに保護の低下をトレードオフするように分離レベルを調整できます。

トランザクションの結果は持続的です。コミット操作が成功すると、そのトランザクションによって行われた変更は、データベース以外の多くのアプリケーションが脆弱である停電、システムのクラッシュ、競合状況、またはほかの潜在的な危険から保護されます。持続性には通常、ディスクストレージへの書き込みがかかわっており、書き込み操作中の停電またはソフトウェアクラッシュに対して保護するために一定の冗長性を備えています。(InnoDB では、二重書き込みバッファーが持続性をサポートします。)

原子的, コミット, 並列性, 二重書き込みバッファー, 分離レベル, ロック, ロールバック, トランザクションも参照

AHI

適応型ハッシュインデックス (Adaptive Hash Index) の頭字語。

適応型ハッシュインデックスも参照

AIO

非同期 I/O (Asynchronous I/O) の頭字語。この頭字語は InnoDB メッセージやキーワードで見られます。

非同期 I/Oも参照

Antelope

元の InnoDB ファイル形式のコード名。これは、冗長および簡易行フォーマットをサポートしますが、Barracuda ファイル形式で利用できるより新しい動的および圧縮行フォーマットはサポートしません。

アプリケーションが、InnoDB テーブル圧縮からメリットを受けられるか、動的行フォーマットからメリットを受けられる BLOB またはラージテキストカラムを使用する場合、一部のテーブルを Barracuda 形式に切り替えることができます。テーブルの作成前に innodb_file_format オプションを設定することによって、使用するファイル形式を選択します。

Barracuda, コンパクト行フォーマット, 圧縮行フォーマット, 動的行フォーマット, ファイル形式, innodb_file_format, 冗長行フォーマットも参照

B

B ツリー

データベースインデックスに一般的に使用されるツリーデータ構造。この構造は、常にソートされ続け、正確な一致 (等号演算子) および範囲 (大なり、小なり、BETWEEN 演算子など) の高速ルックアップを可能にします。このタイプのインデックスは、InnoDB や MyISAM などのほとんどのストレージエンジンで利用できます。

B ツリーノードには多くの子を含むことができるので、B ツリーは、ノードごとに 2 つの子に限られているバイナリツリーと同じではありません。

ハッシュインデックスと対比してください。こちらは MEMORY ストレージエンジンでのみ使用できます。MEMORY ストレージエンジンは、B ツリーインデックスも使用でき、一部のクエリーで範囲演算子を使用する場合は、MEMORY テーブルには B ツリーインデックスを選択してください。

ハッシュインデックスも参照

Barracuda

テーブルデータの圧縮をサポートする InnoDB ファイル形式のコード名。このファイル形式は、最初に InnoDB Plugin に導入されました。これは、InnoDB テーブル圧縮に対応した圧縮行フォーマットと、BLOB およびラージテキストカラムのストレージレイアウトを改善する動的行フォーマットをサポートします。これは innodb_file_format オプションで選択できます。

InnoDB システムテーブルスペースは元の Antelope ファイル形式で格納されるため、Barracuda ファイル形式を使用するには、システムテーブルスペースとは別の独自のテーブルスペースに新しく作成したテーブルを格納する file-per-table 設定も有効にする必要があります。

MySQL Enterprise Backup 製品バージョン 3.5 以降では、Barracuda ファイル形式を使用するテーブルスペースのバックアップをサポートします。

Antelope, コンパクト行フォーマット, 圧縮行フォーマット, 動的行フォーマット, ファイル形式, file-per-table, innodb_file_format, MySQL Enterprise Backup, 行フォーマット, システムテーブルスペースも参照

binlog

バイナリログファイルの非公式名。たとえば、電子メールメッセージやフォーラムディスカッションでこの略語を見ることがあります。

バイナリログも参照

C

CPU バウンド

ワークロードの種類の 1つ。主なボトルネックがメモリー内の CPU 操作であるもの。通常、バッファープール内にすべての結果をキャッシュできる、読み取り中心の操作を含みます。

ボトルネック, バッファープール, CPU バウンド, ワークロードも参照

CRUD

データベースアプリケーションの一般的な操作シーケンスである「作成 (create)、読み取り (read)、更新 (update)、削除 (delete)」の頭字語。多くの場合、どの言語でもすばやく実装でき、比較的単純にデータベースを使用するタイプのアプリケーション (基本的な DDLDML、および SQLクエリーステートメント) を示します。

DDL, DML, クエリー, SQLも参照

D

DCL

データ制御言語 (Data Control Language)。権限を管理するための SQL ステートメントのセット。MySQL では、GRANT および REVOKE ステートメントから構成されます。DDL および DML と対比してください。

DDL, DML, SQLも参照

DDL

データ定義言語 (Data Definition Language)。個々のテーブル行ではなくデータベース自体を操作するための SQL ステートメントのセット。CREATEALTER、および DROP ステートメントのすべての形式を含みます。TRUNCATE ステートメントも含まれます。DELETE FROM table_name ステートメントと動作が異なるためです (最終的な効果は似ていますが) 。

DDL ステートメントは自動的に現在のトランザクションコミットします。それらをロールバックすることはできません。

InnoDB のオンライン DDL 機能は、CREATE INDEXDROP INDEX、および多くのタイプの ALTER TABLE 操作のパフォーマンスを向上させます。詳細は、セクション14.11「InnoDB とオンライン DDL」を参照してください。InnoDB の file-per-table 設定も、DROP TABLE および TRUNCATE TABLE 操作の動作に影響を与える場合があります。

DML および DCL と対比してください。

コミット, DCL, DML, file-per-table, ロールバック, SQL, トランザクションも参照

DML

データ操作言語 (Data Manipulation Language)。挿入、更新、および削除操作を実行するための SQL ステートメントのセット。SELECT ステートメントが DML ステートメントと見なされる場合があります。SELECT ... FOR UPDATE 形式が、INSERTUPDATE、および DELETE と同じ、ロックに関する考慮事項に従うためです。

InnoDB テーブルの DML ステートメントはトランザクションのコンテキストで動作するため、その効果は単一の単位としてコミットまたはロールバックできます。

DDL および DCL と対比してください。

コミット, DCL, DDL, ロック, ロールバック, SQL, トランザクションも参照

F

file-per-table

innodb_file_per_table オプションで制御される設定に対する一般名。これは、InnoDB ファイルストレージの多くの側面、機能の利用可能性、および I/O 特性に影響する、非常に重要な構成オプションです。MySQL 5.6.7 以降ではデフォルトで有効になっています。MySQL 5.6.7 より前では、デフォルトで無効になっています。

この設定が有効である間に作成されたテーブルごとに、データは、システムテーブルスペースibdata ファイルではなく、個別の .ibd ファイルに格納されます。テーブルデータが個々のファイルに格納されている場合、データ圧縮などの機能に必要な、デフォルト以外のファイル形式行フォーマットを選択できる柔軟性が得られます。TRUNCATE TABLE 操作も高速化され、解放された領域は、InnoDB に予約されたままではなく、オペレーティングシステムで使用できます。

MySQL Enterprise Backup 製品は、テーブルがその独自のファイルに格納されるので柔軟性が高くなります。たとえば、テーブルをバックアップから排除できますが、これは個別のファイルに格納されている場合に限られます。したがって、この設定は、あまり頻繁にはバックアップされない、または異なるスケジュールでバックアップされるテーブルに適しています。

圧縮行フォーマット, 圧縮, ファイル形式, .ibd ファイル, ibdata ファイル, innodb_file_per_table, 行フォーマット, システムテーブルスペースも参照

FOREIGN KEY 制約

外部キー関係を通じてデータベース一貫性を維持するタイプの制約。ほかの種類の制約と同様に、データが一貫性を失った場合にデータが挿入または更新されるのを防止できます。ここでは、複数のテーブル内のデータ間の一貫性が失われることが防止されます。または、DML 操作が実行されるときに FOREIGN KEY 制約によって、外部キー作成時に指定された ON CASCADE オプションに基づいて、子行内のデータが削除されたり、別の値に変更されたり、NULL に設定されたりします。

子テーブル, 制約, DML, 外部キー, NULLも参照

FTS

ほとんどのコンテキストで、全文検索 (Full-Text Search) の頭字語。パフォーマンスディスカッションでは、フルテーブルスキャン (Full Table Scan) の頭字語の場合があります。

テーブルの完全スキャン, 全文検索も参照

FULLTEXT インデックス

MySQL 全文検索メカニズムでの検索インデックスを保持する、特殊なインデックスストップワードとして指定されたものを飛ばして、カラムの値からの単語を表します。もともとは、利用できるのは MyISAM テーブルだけでした。MySQL 5.6.4 以降では、InnoDB テーブルでも利用できます。

全文検索, インデックス, InnoDB, 検索インデックス, ストップワードも参照

G

GA

「一般提供 (Generally Available)」。ソフトウェア製品がベータを終え、販売、公式サポート、および本番使用に利用できるようになった段階。

ベータ, アーリーアダプタも参照

global_transaction

XA 操作に含まれるタイプのトランザクション。これは、それ自体はトランザクションであるけれども、すべてがグループとして正しく完了する必要があるか、グループとしてロールバックされる必要がある、いくつかのアクションから構成されます。基本的に、これは ACID 特性を 1 レベル上に拡張することにより、複数の ACID トランザクションを、同じく ACID 特性を持つグローバル操作のコンポーネントとして連携して実行できるようにします。この種の分散トランザクションの場合、SERIALIZABLE 分離レベルを使用して ACID 特性を実現する必要があります。

ACID, SERIALIZABLE, トランザクション, XAも参照

H

HDD

「ハードディスクドライブ (Hard Disk Drive)」の頭字語。SSD と対比されることが多く、スピニングプラッターを使用するストレージメディアを指します。そのパフォーマンス特性はディスクベースワークロードのスループットに影響を与えることがあります。

ディスクベース, SSDも参照

I

I/O バウンド

ディスクバウンドも参照

ib-file セット

MySQL データベース内で InnoDB によって管理されるファイルのセット (システムテーブルスペースfile-per-table テーブルスペース、(通常は 2 つの) Redo ログファイル)。InnoDB ファイル構造および形式の詳細なディスカッションで、さまざまな DBMS 製品間でのデータベースの意味と、MySQL データベースに含まれている可能性がある非 InnoDB ファイルとの間のあいまいさを避けるために使用されることがあります。

データベース, file-per-table, Redo ログ, システムテーブルスペースも参照

ibbackup_logfile

ホットバックアップ操作中に MySQL Enterprise Backup 製品により作成される補助的なバックアップファイル。ここには、バックアップの実行中に行われたデータ変更に関する情報が含まれます。ibbackup_logfile などの初期バックアップファイルは、バックアップ操作中に行われた変更がまだ組み込まれていないので、raw バックアップと呼ばれます。raw バックアップファイルへの適用ステップを実行したあと、結果として得られるファイルは、最終データ変更を含んでおり、準備されたバックアップと呼ばれます。この段階で、ibbackup_logfile ファイルは必要なくなります。

適用, ホットバックアップ, MySQL Enterprise Backup, 準備されたバックアップ, raw バックアップも参照

ibdata ファイル

InnoDB システムテーブルスペースを構成する、ibdata1ibdata2 などの名前を持つファイルのセット。これらのファイルには、InnoDB テーブルに関するメタデータ (データディクショナリ) と、Undo ログ変更バッファー二重書き込みバッファーのストレージ領域が含まれます。(各テーブルの作成時に file-per-table モードが有効であるかどうかによって) テーブルデータの一部またはすべてを含めることもできます。innodb_file_per_table オプションが有効であるときに、新しく作成されたテーブルのデータおよびインデックスは、システムテーブルスペースではなく個別の .ibd ファイルに格納されます。

ibdata ファイルが増大するときは、innodb_autoextend_increment 構成オプションの影響を受けます。

変更バッファー, データディクショナリ, 二重書き込みバッファー, file-per-table, .ibd ファイル, innodb_file_per_table, システムテーブルスペース, Undo ログも参照

ibtmp ファイル

非圧縮 InnoDB 一時テーブルと関連オブジェクト用の InnoDB 一時テーブルスペースデータファイル。構成ファイルオプション innodb_temp_data_file_path は、ユーザーが一時データファイルの相対パスを定義することを許可します。innodb_temp_data_file_path が指定されない場合のデフォルト動作は、データディレクトリ内に ibdata1 と一緒に、ibtmp1 という名前の単一自動拡張 12M バイトデータファイルを作成することです。

一時テーブルスペースも参照

ib_logfile

通常は ib_logfile0 および ib_logfile1 という名前が付けられ、Redo ログを形成するファイルのセット。ロググループと呼ばれることもあります。これらのファイルは、InnoDB テーブル内のデータを変更しようとするステートメントを記録します。これらのステートメントは、クラッシュ後の起動時に、未完了のトランザクションで書き込まれたデータを修正するために自動的に再現されます。

このデータは手動リカバリには使用できません。このタイプの操作には、バイナリログを使用してください。

バイナリログ, ロググループ, Redo ログも参照

ilist

InnoDB FULLTEXT インデックス内で、ドキュメント ID とトークン (つまり特定の語) の位置情報から構成されるデータ構造。

FULLTEXT インデックスも参照

INFORMATION_SCHEMA

MySQL データディクショナリへのクエリーインタフェースを提供するデータベースの名前。(この名前は ANSI SQL 標準で定義されています。)データベースに関する情報 (メタデータ) を調べるには、構造化されていない出力を返す SHOW コマンドを使用する代わりに、INFORMATION_SCHEMA.TABLESINFORMATION_SCHEMA.COLUMNS などのテーブルを照会できます。

情報スキーマには、INNODB_LOCKSINNODB_TRX など、InnoDB に固有のいくつかのテーブルが含まれます。これらのテーブルは、データベースがどのように構造化されているかを確認するためではなく、InnoDB テーブルの動作に関するリアルタイム情報を得るために使用してください (パフォーマンスモニタリング、チューニング、トラブルシューティングに役立ちます)。これらのテーブルは特に、圧縮トランザクション、およびそれらに関連付けられたロックに関連する MySQL 機能についての情報を提供します。

圧縮, データディクショナリ, データベース, InnoDB, ロック, トランザクションも参照

InnoDB

高いパフォーマンスと、信頼性、堅牢性、および同時アクセスのためのトランザクション機能とを結合する MySQL コンポーネント。これは ACID 設計概念を具体化したものです。ストレージエンジンとして表現され、ENGINE=INNODB 句で作成または変更されたテーブルを処理します。アーキテクチャーの詳細および管理手順については第14章「InnoDB ストレージエンジン、パフォーマンスのアドバイスについてはセクション8.5「InnoDB テーブルの最適化」を参照してください。

MySQL 5.5 以降では、InnoDB が新しいテーブルのデフォルトストレージエンジンなので、ENGINE=INNODB 句は必要ありません。MySQL 5.1 でのみ、高度な InnoDB 機能の多くで InnoDB Plugin と呼ばれるコンポーネントを有効にする必要があります。InnoDB テーブルがデフォルトである最近のリリースへの移行に関する考慮事項については、セクション14.1.1「デフォルトの MySQL ストレージエンジンとしての InnoDB」を参照してください。

InnoDB テーブルは理論的には、ホットバックアップに適しています。通常の処理を妨げることなく MySQL Server をバックアップできる MySQL Enterprise Backup 製品の詳細は、セクション25.2「MySQL Enterprise Backup」を参照してください。

ACID, ホットバックアップ, ストレージエンジン, トランザクションも参照

innodb_autoinc_lock_mode

innodb_autoinc_lock_mode オプションは、自動インクリメントロックに使用されるアルゴリズムを制御します。自動インクリメントする主キーがある場合は、innodb_autoinc_lock_mode=1 設定でのみステートメントベースレプリケーションを使用できます。この設定は、トランザクション内の複数行挿入が連続自動インクリメント値を受け取るため、連続ロックモードと呼ばれます。innodb_autoinc_lock_mode=2 の場合は (挿入操作で並列性が向上)、ステートメントベースレプリケーションではなく行ベースレプリケーションを使用してください。この設定は、同時に実行される複数の複数行挿入ステートメントが自動インクリメント値を交互に受け取ることができるため、インターリーブロックモードと呼ばれます。innodb_autoinc_lock_mode=0 の設定は、以前 (従来) のデフォルト設定であり、互換性の目的以外では使用しないでください。

自動インクリメントロック, 混在モード挿入, 主キーも参照

innodb_file_format

innodb_file_format オプションは、このオプションの値を指定したあとに作成されるすべての InnoDB テーブルスペースファイル形式を決定します。システムテーブルスペース以外のテーブルスペースを作成するには、file-per-table オプションも使用する必要があります。現在のところ、Antelope および Barracuda ファイル形式を指定できます。

Antelope, Barracuda, ファイル形式, file-per-table, innodb_file_per_table, システムテーブルスペース, テーブルスペースも参照

innodb_file_per_table

InnoDB ファイルストレージ、機能の利用可能性、および I/O 特性の多くの側面に影響する、非常に重要な構成オプション。MySQL 5.6.7 以降ではデフォルトで有効になっています。MySQL 5.6.7 より前では、デフォルトで無効になっています。innodb_file_per_table オプションは file-per-table モードをオンにし、新しく作成された InnoDB テーブルおよびそれに関連付けられたインデックスをシステムテーブルスペース外部のそれぞれ独自の .ibd ファイルに格納します。

このオプションは、DROP TABLETRUNCATE TABLE など、いくつかの SQL ステートメントのパフォーマンスおよびストレージに関する考慮事項に影響します。

このオプションは、テーブル圧縮などの多くのほかの InnoDB 機能や、MySQL Enterprise Backup での特定のテーブルのバックアップを十分に活用するために必要です。

このオプションは以前は静的でしたが、SET GLOBAL コマンドを使用して設定できるようになりました。

参照情報については、innodb_file_per_table を参照してください。使用法情報については、セクション14.5.2「InnoDB File-Per-Table モード」を参照してください。

圧縮, file-per-table, .ibd ファイル, MySQL Enterprise Backup, システムテーブルスペースも参照

innodb_lock_wait_timeout

innodb_lock_wait_timeout オプションは、共有リソースが利用できるようになるまで待機するか、または放棄してエラーを処理したり、再試行したり、アプリケーションで代替処理を行ったりするかのバランスを設定します。InnoDB トランザクションがロックを獲得するための指定待機時間を超えた場合は、ロールバックします。特に、異なるストレージエンジンで制御される複数のテーブルへの更新によってデッドロックが発生した場合に役立ちます。このようなデッドロックは自動的には検出されません。

デッドロック, デッドロック検出, ロック, 待機も参照

innodb_strict_mode

innodb_strict_mode オプションは、InnoDB が 厳密モード (通常は警告として扱われる条件でエラーを発生させる (そして基礎となるステートメントが失敗する)) で動作するかどうかを制御します。

このモードは MySQL 5.5.5 以降のデフォルト設定です。

厳密モードも参照

IOPS

1 秒あたりの I/O 操作 (I/O Operations Per Second) の頭字語。ビジーシステム、特に OLTP アプリケーションの一般的な測定基準。ストレージデバイスが処理できる最大値にこの値が近い場合、アプリケーションはディスクバウンドになり、スケーラビリティーを制限する場合があります。

ディスクバウンド, OLTP, スケーラビリティーも参照

K

KEY_BLOCK_SIZE

圧縮行フォーマットを使用する InnoDB テーブル内で、データページのサイズを指定するオプション。デフォルトは 8K バイトです。値を小さくすると、行サイズと圧縮比率の組み合わせによって内部制限に達する恐れがあります。

圧縮行フォーマットも参照

L

lock mode

共有ロックでは、トランザクションは行を読み取ることができます。複数のトランザクションが同時にその同じ行で S ロックを獲得できます。

排他 (X) ロックでは、トランザクションは行を更新または削除できます。ほかのトランザクションは、同時にその同じ行でどのようなロックも獲得できません。

インテンションロックは、テーブルレベルに適用され、トランザクションがテーブル内の行で獲得したいロックの種類を示すために使用されます。トランザクションごとに異なる種類のインテンションロックを同じテーブルで獲得できますが、最初のトランザクションがあるテーブルでインテンション排他 (IX) ロックを獲得すると、ほかのトランザクションはそのテーブルで S または X ロックを獲得できません。反対に、最初のトランザクションがあるテーブルでインテンション共有 (IS) ロックを獲得すると、ほかのトランザクションはそのテーブルで X ロックを獲得できません。2 フェーズプロセスは、ロックおよび互換性のある対応操作をブロックせずに、ロックリクエストを順番に解決できます。

インテンションロック, ロック, ロックも参照

loose_

MySQL 5.1 で、サーバーの起動後に InnoDB Plugin をインストールするときに、InnoDB 構成オプションに追加されるプリフィクス。したがって、現在のレベルの MySQL で認識されない新しい構成オプションは起動エラーを引き起こしません。MySQL は、このプリフィクスで始まる構成オプションを処理しますが、プリフィクスに続く部分が認識されるオプションでない場合、エラーではなく警告を返します。

プラグインも参照

LRU

「Least Recently Used」の頭字語。ストレージ領域を管理するための一般的な方法。より新しい項目をキャッシュするための領域が必要なときは、最近使用されていない項目は削除されます。InnoDB は、バッファープール内のページを管理するためにデフォルトで LRU メカニズムを使用しますが、ページが 1 回だけ読み取られる場合 (フルテーブルスキャン中など) を例外扱いします。LRU アルゴリズムのこのバリエーションはミッドポイント挿入戦略と呼ばれます。バッファープール管理が従来の LRU アルゴリズムと異なる点は、オプション innodb_old_blocks_pctinnodb_old_blocks_time と、新しい MySQL 5.6 オプション innodb_lru_scan_depth および innodb_flush_neighbors により微調整されることです。

バッファープール, エビクション, テーブルの完全スキャン, ミッドポイント挿入戦略, ページも参照

LSN

「ログシーケンス番号 (Log Sequence Number)」の頭字語。この任意の増加し続ける値は、Redo ログに記録される操作に対応する時点を表します。(この時点は、トランザクション境界を意識しません。1 つ以上のトランザクションの中間になることがあります。)クラッシュリカバリ中に InnoDB によって内部的に、バッファープールを管理するために使用されます。

MySQL 5.6.3 より前では、LSN は 4 バイト符号なし整数でした。LSN は、MySQL 5.6.3 で 8 バイト符号なし整数になりました。追加サイズ情報を格納するために追加バイトが必要だったので、Redo ログファイルサイズ限度が 4G バイトから 512G バイトに増加したためです。MySQL 5.6.3 以降でビルドされたアプリケーションのうち LSN 値を使用するものは、32 ビット変数ではなく 64 ビット変数を使用して LSN 値を格納および比較することをお勧めします。

MySQL Enterprise Backup 製品では、増分バックアップを取得する時点を表す LSN を指定できます。該当する LSN は、mysqlbackup コマンドの出力で表示されます。完全バックアップの時点に対応する LSN がわかれば、後続の増分バックアップを取得するためにその値を指定でき、その出力には次の増分バックアップのもう 1 つの LSN が含まれます。

クラッシュリカバリ, 増分バックアップ, MySQL Enterprise Backup, Redo ログ, トランザクションも参照

M

MDL

「メタデータロック (MetaData Lock)」の頭字語。

メタデータロックも参照

memcached

多くの MySQL および NoSQL ソフトウェアスタックで広く使用されているコンポーネント。単一値を高速で読み書きでき、結果全体をメモリーにキャッシュします。アプリケーションは従来、永続的ストレージに同じデータを MySQL データベースに書き込むため、またはまだメモリーにキャッシュされていない場合は MySQL データベースからデータを読み取るために、特別なロジックを必要としていました。現在は、アプリケーションは多くの言語のクライアントライブラリでサポートされる単純な memcached プロトコルを使用して、InnoDB または MySQL Cluster テーブルを使用する MySQL Server と直接通信できます。アプリケーションは、これらの NoSQL から MySQL テーブルへのインタフェースを利用することで、SQL コマンドを直接発行するよりも高い読み取り/書き込みパフォーマンスを実現でき、すでにインメモリーキャッシュ用に memcached が組み込まれているシステムのアプリケーションロジックと配備構成を簡略化できます。

InnoDB テーブルへの memcached インタフェースは、MySQL 5.6 以降で利用できます。詳細は、セクション14.18「InnoDB と memcached の統合」を参照してください。MySQL Cluster テーブルへの memcached インタフェースは、MySQL Cluster 7.2 で使用できます。詳細は、http://dev.mysql.com/doc/ndbapi/en/ndbmemcache.htmlを参照してください。

InnoDB, NoSQLも参照

mtr

ミニトランザクションも参照

MVCC

「マルチバージョン並列性制御 (MultiVersion Concurrency Control)」の略語。この方法を使用すれば、特定の分離レベルを持つ InnoDB トランザクションが、一貫性読み取り操作を実行できます。つまり、ほかのトランザクションが更新している行を照会して、これらの更新が行われる前に値を確認できます。これは、ほかのトランザクションが保持しているロックのために待機することなく、クエリーが進行できるようにすることによって、並列性を高める強力な方法です。

この方法は、データベース世界で共通のものではありません。ほかのデータベース製品やほかの MySQL ストレージエンジンの中には、これをサポートしないものがあります。

ACID, 並列性, 一貫性読み取り, 分離レベル, ロック, トランザクションも参照

my.cnf

UNIX または Linux システムでの MySQL オプションファイルの名前。

my.ini, オプションファイルも参照

my.ini

Windows システムでの MySQL オプションファイルの名前。

my.cnf, オプションファイルも参照

mysql

mysql プログラムは MySQL データベース用のコマンド行インタープリターです。SQL ステートメントを処理し、mysqld デーモンにリクエストを渡すことによって SHOW TABLES などの MySQL 固有コマンドも処理します。

mysqld, SQLも参照

MySQL Enterprise Backup

MySQL データベースのホットバックアップを実行するライセンス製品。InnoDB テーブルをバックアップするときに効率性と柔軟性がもっとも高くなりますが、MyISAM とほかの種類のテーブルもバックアップできます。

ホットバックアップ, InnoDBも参照

mysqlbackup コマンド

MySQL Enterprise Backup 製品のコマンド行ツール。InnoDB テーブルにはホットバックアップ操作を、MyISAM とほかの種類のテーブルにはウォームバックアップ操作を実行します。このコマンドの詳細は、セクション25.2「MySQL Enterprise Backup」を参照してください。

ホットバックアップ, MySQL Enterprise Backup, ウォームバックアップも参照

mysqld

mysqld プログラムは、MySQL データベース用のデータベースエンジンです。UNIX デーモンまたは Windows サービスとして動作し、常にリクエストを待機し、バックグラウンドで保守作業を実行します。

mysqlも参照

mysqldump

データベース、テーブル、およびテーブルデータの組み合わせの論理バックアップを実行するコマンド。結果は、元のスキーマオブジェクトまたはデータ、あるいはその両方を再現する SQL ステートメントです。相当な量のデータの場合、MySQL Enterprise Backup などの物理バックアップソリューションが高速です (特にリストア操作で)。

論理バックアップ, MySQL Enterprise Backup, 物理バックアップ, リストアも参照

N

NoSQL

データ読み書きの主要なメカニズムとして SQL 言語を使用しない、一連のデータアクセステクノロジの一般的な用語。NoSQL テクノロジの中には、単一値の読み取りと買い込みだけを受け入れるキー値ストアとして機能するものがあります。ACID 原理の制限を緩和するものや、事前に計画されたスキーマが不要なものもあります。MySQL ユーザーは、memcached API を使用して何らかの MySQL テーブルに直接アクセスすることにより、速度と簡略化のための NoSQL スタイル処理と、柔軟性と利便性のための SQL 操作を組み合わせることができます。InnoDB テーブルへの memcached インタフェースは、MySQL 5.6 以降で利用できます。詳細は、セクション14.18「InnoDB と memcached の統合」を参照してください。MySQL Cluster テーブルへの memcached インタフェースは、MySQL Cluster 7.2 で使用できます。詳細は、http://dev.mysql.com/doc/ndbapi/en/ndbmemcache.htmlを参照してください。

ACID, InnoDB, memcached, スキーマ, SQLも参照

NOT NULL 制約

カラムNULL 値を含むことができないと規定するタイプの制約。これは、データベースサーバーが誤って値が失われているデータを識別できるので、参照整合性の維持に役立ちます。また、オプティマイザはそのカラムのインデックス内のエントリ数を予測できるので、クエリー最適化に関係する演算でも役立ちます。

カラム, 制約, NULL, 主キー, 参照整合性も参照

NULL

データが存在しないことを示す、SQL での特殊な値。算術演算や等価性テストに NULL 値が含まれる場合は、それらは NULL 結果を返します。(したがってこれは、IEEE 浮動小数点の NaN (not a number) 概念に似ています。)AVG() などの集計計算は、除算の分母となる行数を決定するときに、NULL 値を含む行を無視します。NULL 値を扱う唯一のテストは、SQL イディオム IS NULL または IS NOT NULL を使用します。

NULL 値はインデックス操作で役割を果たします。パフォーマンスのため、データベースは失われたデータ値を追跡するオーバーヘッドを最小限に抑える必要があるためです。NULL 値は通常、インデックスに格納されません。標準比較演算子を使用してインデックスカラムをテストするクエリーは、そのカラムの行を NULL 値に照合することはできないためです。同じ理由で、一意のインデックスは NULL 値を防止しません。これらの値は単純にインデックスに表示されません。カラムで NOT NULL 制約を宣言することで、インデックスから外れる行がないことが再保証され、クエリー最適化が向上します (行数カウントおよびインデックスを使用するかどうかの評価の精度)。

主キーはテーブル内のすべての行を一意に識別できる必要があるので、単一カラム主キーには NULL 値を含めることはできず、複数カラム主キーにはすべてのカラムで NULL 値を持つ行を含めることはできません。

Oracle データベースでは NULL 値を文字列と連結できますが、InnoDB はこのような操作の結果を NULL として扱います。

インデックス, 主キー, SQLも参照

O

OLTP

「オンライントランザクション処理 (Online Transaction Processing)」の頭字語。データベースシステムまたはデータベースアプリケーションの 1 つ。多数のトランザクション、頻繁な書き込みと読み取りのワークロードを実行し、通常は一度に少量のデータに影響します。たとえば、航空便予約システムや銀行預金を処理するアプリケーションがあります。DML (挿入/更新/削除) 効率性とクエリー効率性とのバランスを取るために、データは正規化形式で編成される場合があります。データウェアハウスと対比してください。

InnoDB は、行レベルロックトランザクション機能を備え、OLT アプリケーションで使用される MySQL テーブルに理想的なストレージエンジンです。

データウェアハウス, DML, InnoDB, クエリー, 行ロック, トランザクションも参照

P

page size

MySQL 5.5 以前のリリースでは、各 InnoDB ページのサイズは 16K バイトに固定されています。この値は、ほとんどの行のデータを保持できる大きさと、不要なデータをメモリーに転送するパフォーマンスオーバーヘッドを最小化できる小ささとを、調和させたものです。ほかの値は未テストで、サポートされません。

MySQL 5.6 以降、InnoDB インスタンスのページサイズは 4K バイト、8K バイト、または 16K バイトに設定でき、innodb_page_size 構成オプションで制御できます。MySQL 5.7.6 以降の InnoDB は、32K バイトおよび 64K バイトページサイズのサポートも提供します。どちらのページサイズでも、ROW_FORMAT=COMPRESSED はサポートされず、最大レコードサイズは 16K バイトです。

サイズは MySQL インスタンス作成時に設定し、その後は不変です。同じページサイズが、すべての InnoDB テーブルスペース (システムテーブルスペースと、file-per-table モードで別個に作成されるテーブルスペース) に適用されます。

ページサイズが小さいほど、小さなブロックサイズを使用するストレージデバイス (特に、OLTP アプリケーションなどのディスクバウンドワークロードでの SSD デバイス) のパフォーマンスに役立ちます。個々の行が更新されるときに、メモリーにコピーされたり、ディスクに書き込まれたり、再編成されたり、ロックされたりするときのデータ量が少なくなります。

ディスクバウンド, file-per-table, インスタンス, OLTP, ページ, SSD, システムテーブルスペース, テーブルスペースも参照

PITR

ポイントインタイムリカバリ (Point-In-Time Recovery) の頭字語。

ポイントインタイムリカバリも参照

Pthreads

POSIX スレッド標準。UNIX および Linux システムでのスレッドおよびロック操作の API を定義します。UNIX および Linux システムでは、InnoDB はこの相互排他ロック実装を使用します。

相互排他ロックも参照

R

RAID

「Redundant Array of Inexpensive Drives」の頭字語。複数のドライブに I/O 操作を分散することにより、ハードウェアレベルで並列性が向上し、低レベル書き込み操作の効率性が改善します (そうしない場合は順番に実行されます)。

並列性も参照

raw バックアップ

バイナリログ増分バックアップに反映される変更が適用される前の、MySQL Enterprise Backup 製品によって生成されるバックアップファイルの初期セット。この段階では、ファイルはリストアする準備ができていません。これらの変更が適用されたあと、ファイルは準備されたバックアップと呼ばれます。