無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 13 ストレージエンジンとテーブルタイプ :: 13.3 ストレージエンジンの設定
« 13.2.3 その他のストレージエンジン

13.4 MyISAM ストレージエンジン »
Section Navigation      [Toggle]
  • 13 ストレージエンジンとテーブルタイプ
  • 13.1 MySQLストレージエンジンアーキテクチャの概要
  • 13.2 サポートされたストレージエンジン
  • 13.3 ストレージエンジンの設定
  • 13.4 MyISAM ストレージエンジン
  • 13.5 InnoDB ストレージ エンジン
  • 13.6 MERGE ストレージエンジン
  • 13.7 MEMORY (HEAP) ストレージエンジン
  • 13.8 EXAMPLE ストレージエンジン
  • 13.9 FEDERATED ストレージエンジン
  • 13.10 ARCHIVE ストレージエンジン
  • 13.11 CSV ストレージエンジン
  • 13.12 BLACKHOLE ストレージエンジン

13.3. ストレージエンジンの設定

新しいテーブルを作成する時、ENGINE テーブルオプションを CREATE TABLE ステートメントに加える事によって、どのストレージエンジンを利用するかを指定できます。

CREATE TABLE t (i INT) ENGINE = INNODB;

ENGINE か TYPE オプションを省略すると、デフォルトのストレージエンジンが利用されます。通常、これは MyISAMですが、--default-storage-engine か --default-table-type サーバー始動オプションを利用、またはmy.cnf 構造ファイルの中の default-storage-engine か default-table-type オプション を設定する事で変更できます。

現在のセッションの途中で storage_engine 変数を設定する事によって、利用するデフォルトストレージエンジンを設定する事ができます。

SET storage_engine=MYISAM;

MySQLコンフィギュレーションウィザードを利用してMySQLがWindowsにインストールされた時は、MyISAMの代わりに InnoDB ストレージエンジンをデフォルトとして選択する事ができます。詳しくは項2.3.4.6. 「データベースの使用ダイアログ」を参照してください。

テーブルを別のストレージエンジンに変換するには、新しいエンジンを指示するALTER TABLE ステートメントを利用してください。

ALTER TABLE t ENGINE = MYISAM;

項12.1.8. 「CREATE TABLE 構文」と項12.1.2. 「ALTER TABLE 構文」を参照して下さい。

もし、編集されていないストレージエンジンや、編集はされていても無効になっているストレージエンジンを利用しようとすると、MySQLは代わりにデフォルトのストレージエンジンを利用しててテーブルを作成します。通常その時利用されるのはMyISAMです。この機能は、別々のストレージエンジンをサポートするMySQLサーバー間でテーブルをコピーしたい時に便利です。(例えば、複製を設定する時、マスターサーバは安全の為トランザクションストレージエンジンをサポートするでしょう。しかし、スレーブサーバはスピードの為に、非トランザクションストレージエンジンだけを利用します。)

新しいMySQLユーザにとっては、利用不可デフォルトストレージエンジンの自動置換は複雑かもしれません。ストレージエンジンが自動的に変更された時は必ず、警告メッセージが表示されます。

テーブルとカラムの定義を維持する為に、MySQLは毎回新しいテーブルの為に .frm を作成します。ストレージエンジンによっては、テーブルのインデックスとデータは複数の別のファイルに格納されるでしょう。サーバーがストレージエンジンレベルの上位に .frm ファイルを作成します。個々のストレージエンジンは、それらが管理するテーブルが必要とする追加ファイルも作成します。もしテーブル名が特別な文字を含んでいる場合、そのテーブルファイルの名前は項8.2.3. 「ファイル名への識別子のマッピング」に表されているようにそれらの文字が暗号化された形を含んだ物になります。

データベースは異なるタイプのテーブルを含む事があります。これは、テーブルが同じストレージエンジンで作成されなくても良い事を表しています。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.