Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  一般情報  /  MySQL の標準への準拠

1.8 MySQL の標準への準拠

このセクションでは、MySQL と ANSI/ISO SQL 標準との関連について説明します。MySQL Server には SQL 標準に対する多数の拡張機能があり、ここでは、それらの拡張機能と使用方法について説明します。また、MySQL Server に不足している機能と、この不足分に対処する方法に関する情報も示します。

SQL 標準は 1986 年以降開発が繰り返され、複数のバージョンがあります。このマニュアルでは、SQL-92は 1992 年にリリースされた標準に、SQL:1999は 1999 年にリリースされた標準に、SQL:2003は 2003 年にリリースされた標準に、そしてSQL:2008は 2008 年にリリースされた最新バージョンの標準に対応しています。SQL 標準標準 SQLという語句は、常に SQL 標準の現バージョンを意味します。

製品に関する当社の主な目標の 1 つは、速度や信頼性を犠牲にすることなく、SQL 標準への準拠に向けた取り組みを続けることです。大部分のユーザーにとって MySQL Server が大幅に使いやすくなるのであれば、当社は SQL に対する拡張機能や SQL 以外の機能のサポートを積極的に追加します。HANDLER インタフェースがこの方針の一例です。セクション13.2.4「HANDLER 構文」を参照してください。

24 時間 365 日のミッションクリティカルな使用にも、負荷のかかる Web またはロギングの使用にも対応できるように、トランザクションデータベースと非トランザクションデータベースのサポートを継続しています。

MySQL Server は当初、小規模なコンピュータシステムで中規模のデータベース (1,000 万から 1 億行、または 1 テーブルあたり約 100M バイト) を操作できるように設計されました。現在の MySQL Server は、テラバイト規模のデータベースを処理しますが、ハンドヘルドデバイスや組み込みデバイスにより適した縮小バージョンでコードをコンパイルすることもできます。MySQL Server のコンパクトな設計によって、ソースツリーで競合することなく、これらのどちらの方向の開発も実現することができます。

現時点では、リアルタイムのサポートは予定されていませんが、MySQL のレプリケーション能力は重要な機能を実現します。

MySQL は ODBC レベル 0 から 3.51 をサポートします。

MySQL は、NDBCLUSTER ストレージエンジンを使用した高可用性データベースクラスタリングをサポートします。第18章「MySQL Cluster NDB 7.3 および MySQL Cluster NDB 7.4を参照してください。

ほとんどの W3C XPath 標準をサポートする XML 機能を実装しています。セクション12.11「XML 関数」を参照してください。

SQL モードの選択

MySQL Server は異なる SQL モードで動作でき、sql_mode システム変数の値に応じて異なるクライアントにこれらの異なるモードを適用できます。DBA はサイトサーバーの動作要件に一致するグローバル SQL モードを設定でき、各アプリケーションはアプリケーションのセッション SQL モードをアプリケーション独自の要件に設定できます。

モードは MySQL がサポートする SQL 構文と、MySQL が実行するデータ検証に影響します。これにより、MySQL をさまざまな環境で使用したり、MySQL をほかのデータベースサーバーと一緒に使用したりすることが、さらに容易になります。

SQL モードの設定の詳細は、セクション5.1.7「サーバー SQL モード」を参照してください。

ANSI モードでの MySQL の実行

ANSI モードで MySQL Server を実行するには、--ansi オプションを付けて mysqld を起動します。ANSI モードでのサーバーの実行は、次のオプションを指定してサーバーを起動する場合と同じです。

--transaction-isolation=SERIALIZABLE --sql-mode=ANSI

実行時に同じ効果を得るには、次の 2 つのステートメントを実行します。

SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET GLOBAL sql_mode = 'ANSI';

次のように、sql_mode システム変数値を 'ANSI' に設定すると、ANSI モードに関連するすべての SQL モードオプションが有効になります。

mysql> SET GLOBAL sql_mode='ANSI';
mysql> SELECT @@global.sql_mode;
        -> 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI'

--ansi を使用して ANSI モードでサーバーを実行した場合は、--ansi オプションがトランザクション分離レベルも設定するため、SQL モードを 'ANSI' に設定した場合とは少し異なります。

セクション5.1.3「サーバーコマンドオプション」を参照してください。


User Comments
Sign Up Login You must be logged in to post a comment.