MySQL よくある技術的なご質問
過去にお問い合わせいただいたご質問と回答をご紹介いたします。- ORDER BY 句を指定しないで SELECT 文を実行した場合、結果はどういう順序で返ってくるか決まっているのですか?
結果がどういう順序で返ってくるかは分かりません。
[⇒個別ページで表示] - auto_increment フィールドに 0 か NULL を挿入した場合、0 から採番されるのでしょうか?
0 からの採番はできません。auto_increment フィールドは 1 以上の値になります。
[⇒個別ページで表示] - ストレージエンジンとは何ですか?
MySQL はデータの保存形式を複数持っています。その保存形式により、機能や特徴、パフォーマンスが変わります。
[⇒個別ページで表示]
これをストレージエンジンと呼んでいます。 - 標準のストレージエンジンは何になりますか?
ほとんどの場合、標準のストレージエンジンは MyISAM です。
[⇒個別ページで表示]
テーブル作成文で TYPE または ENGINE を指定しなければ、テーブルの型は MyISAM になります。
ただし、Windows でインストーラを利用してインストールした場合、GUI 画面に従い MyISAM、InnoDB 両方を含むように設定を行えば、標準のストレージエンジンは InnoDB になります。 - 標準のストレージエンジンを変更するにはどうすればいいですか?
例えば標準のストレージエンジンを InnoDB に変更したい場合には、起動時に
[⇒個別ページで表示]
mysqld_safe –default-storage-engine=InnoDB &
というように、オプションを使用してください。
あるいは、初期設定ファイルで[mysqld]下の行に
default-storage-engine=INNODB
と設定してください。 - mysql データベース(権限データベース)のテーブルのストレージエンジンは何ですか?また、このストレージエンジンは変更してもいいのですか?
mysql データベース内のテーブルは権限テーブルと言い、そのストレージエンジンは MyISAM です。(ISAM 型でも使用できますが、MySQL 4.0 以降、一般に使用いたしません。またMySQL 5.0 では廃止されました。)
[⇒個別ページで表示]
ストレージエンジンを InnoDB などに変更してはいけません。 - データベース名、テーブル名は、大文字・小文字を区別するのですか?
MySQL がインストールされている OS によります。
[⇒個別ページで表示]
デフォルトでは、Unix 系 OS では大文字・小文字を区別しますが、Windows では区別しません。 - フィールド名は、大文字・小文字を区別するのでしょうか?
区別しません。
[⇒個別ページで表示] - InnoDB テーブルで、そのまま UPDATE、INSERT、DELETE を実行するとコミットされてしまいます。なぜですか?また、ロールバックできるようにするには、どうすればいいですか?
デフォルトで「AUTOCOMMIT=1」になっているためです。
[⇒個別ページで表示]
トランザクション実行前に、「SET AUTOCOMMIT=0;」を実行して AUTOCOMMIT を無効にするか、または「BEGIN;」を実行します。 - MySQL に全文検索機能はあるのですか?
MyISAM テーブルでは、FULLTEXT インデックスにより全文検索が可能です。
[⇒個別ページで表示]
ただし、現在のところ日本語には対応しておりません。
有限会社未来検索ブラジルが開発した、オープンソースソフトウェアの Senna を MySQL に組み込めば全文検索が可能になります。 - MySQL 4.0 から MySQL 4.1 への主な変更点は何ですか?
- 文字の取扱い
文字データ型のサイズ指定がバイトから文字数に変更 - キャラクタセットの取扱い
日本語に関連する文字コード utf8, ucs2, cp932 の追加 - 文字コードの自動変換機能
- サブクエリ追加
- NDB クラスタ追加
- 文字の取扱い
- MySQL 4.1 から MySQL 5.0 への主な変更点は何ですか?
- ストアドプロシージャ追加
- トリガ追加
- ビュー追加
- 文字コード追加
日本語に関連する文字コード eucjpms の追加 - FEDERATED エンジン





