SHOW AUTHORS
構文
SHOW CHARACTER SET
構文
SHOW COLLATION
構文
SHOW COLUMNS
構文
SHOW CONTRIBUTORS
構文
SHOW CREATE DATABASE
構文
SHOW CREATE EVENT
SHOW CREATE PROCEDURE
と SHOW CREATE FUNCTION
構文
SHOW CREATE TABLE
構文
SHOW CREATE VIEW
構文
SHOW DATABASES
構文
SHOW ENGINE
構文
SHOW ENGINES
構文
SHOW ERRORS
構文
SHOW EVENTS
SHOW GRANTS
構文
SHOW INDEX
構文
SHOW INNODB STATUS
構文
SHOW OPEN TABLES
構文
SHOW PLUGINS
構文
SHOW PRIVILEGES
構文
SHOW PROCEDURE CODE
と SHOW FUNCTION CODE
構文
SHOW PROCEDURE STATUS
と SHOW FUNCTION STATUS
構文
SHOW PROCESSLIST
構文
SHOW SCHEDULER STATUS
構文
SHOW STATUS
構文
SHOW TABLE STATUS
構文
SHOW TABLES
構文
SHOW TRIGGERS
構文
SHOW VARIABLES
構文
SHOW WARNINGS
構文
SHOW
は、データベース、テーブル、カラム、またサーバのステータス情報などのような様々な情報を提供する多くの形を持っています。このセクションでは次のような物を紹介します。
SHOW AUTHORS SHOW CHARACTER SET [LIKE 'pattern
'] SHOW COLLATION [LIKE 'pattern
'] SHOW [FULL] COLUMNS FROMtbl_name
[FROMdb_name
] [LIKE 'pattern
'] SHOW CONTRIBUTORS SHOW CREATE DATABASEdb_name
SHOW CREATE EVENTevent_name
SHOW CREATE FUNCTIONfuncname
SHOW CREATE PROCEDUREprocname
SHOW CREATE TABLEtbl_name
SHOW CREATE VIEWview_name
SHOW DATABASES [LIKE 'pattern
'] SHOW ENGINEengine_name
{LOGS | STATUS | MUTEX} SHOW [STORAGE] ENGINES SHOW ERRORS [LIMIT [offset
,]row_count
] SHOW [FULL] EVENTS SHOW FUNCTION CODEsp_name
SHOW FUNCTION STATUS [LIKE 'pattern
'] SHOW GRANTS FORuser
SHOW INDEX FROMtbl_name
[FROMdb_name
] SHOW INNODB STATUS SHOW PROCEDURE CODEsp_name
SHOW PROCEDURE STATUS [LIKE 'pattern
'] SHOW PLUGINS SHOW PRIVILEGES SHOW [FULL] PROCESSLIST SHOW SCHEDULER STATUS SHOW [GLOBAL | SESSION] STATUS [LIKE 'pattern
'] SHOW TABLE STATUS [FROMdb_name
] [LIKE 'pattern
'] SHOW [OPEN] TABLES [FROMdb_name
] [LIKE 'pattern
'] SHOW TRIGGERS SHOW [GLOBAL | SESSION] VARIABLES [LIKE 'pattern
'] SHOW WARNINGS [LIMIT [offset
,]row_count
]
SHOW
ステートメントも、複製マスタとスレーブ マスタに関する情報を提供する形を持っており、それらは 項12.6. 「複製ステートメント」 で紹介されています。
SHOW BINARY LOGS SHOW BINLOG EVENTS SHOW MASTER STATUS SHOW SLAVE HOSTS SHOW SLAVE STATUS
もし与えられた SHOW
ステートメントの構文が LIKE 'pattern'
部を含んでいたら、'pattern'
は SQL ‘%
’ と ‘_
’ ワイルドカード文字を含む事ができる文字列になります。そのパターンは、一致する値へのステートメント アウトプットを制限するのに有効です。
いくつかの SHOW
ステートメントは、どの行を表示するかを指定する事に対して柔軟性を提供する WHERE
条項も許容します。詳しくは 項21.27. 「SHOW
ステートメントへの拡張」 を参照してください。
SHOW AUTHORS
構文SHOW AUTHORS
SHOW AUTHORS
ステートメントは、MySQL 上で働く人々の情報を表示します。それぞれの作者に対して、Name
、Location
、そして Comment
値を表示します。
このステートメントは、MySQL 5.1.3 で追加されました。
SHOW CHARACTER SET
構文SHOW CHARACTER SET [LIKE 'pattern
']
SHOW CHARACTER SET
ステートメントは全ての有効な文字セットを表示します。これは、どの文字セット名が一致するかを指示する任意の LIKE
条項を取ります。例:
mysql> SHOW CHARACTER SET LIKE 'latin%';
+---------+-----------------------------+-------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+-----------------------------+-------------------+--------+
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |
| latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 |
+---------+-----------------------------+-------------------+--------+
Maxlen
カラムは、一文字を格納するのに必要な最大バイト数を表示します。
SHOW COLLATION
構文SHOW COLLATION [LIKE 'pattern
']
SHOW COLLATION
からのアウトプットは全ての有効な文字セットを含んでいます。これは、どの pattern
が、どの照合名と一致するかを指示する任意の LIKE
条項を取ります。例:
mysql> SHOW COLLATION LIKE 'latin1%';
+-------------------+---------+----+---------+----------+---------+
| Collation | Charset | Id | Default | Compiled | Sortlen |
+-------------------+---------+----+---------+----------+---------+
| latin1_german1_ci | latin1 | 5 | | | 0 |
| latin1_swedish_ci | latin1 | 8 | Yes | Yes | 0 |
| latin1_danish_ci | latin1 | 15 | | | 0 |
| latin1_german2_ci | latin1 | 31 | | Yes | 2 |
| latin1_bin | latin1 | 47 | | Yes | 0 |
| latin1_general_ci | latin1 | 48 | | | 0 |
| latin1_general_cs | latin1 | 49 | | | 0 |
| latin1_spanish_ci | latin1 | 94 | | | 0 |
+-------------------+---------+----+---------+----------+---------+
Default
カラムは、照合がその文字セットにとってデフォルトであるかどうかを指示します。Compiled
はその文字セットがサーバ内にコンパイルされるかどうかを指示します。Sortlen
は、文字セットの中の文字列式をソートする為に必要とされるメモリの量と関係しています。
SHOW COLUMNS
構文SHOW [FULL] COLUMNS FROMtbl_name
[FROMdb_name
] [LIKE 'pattern
']
SHOW COLUMNS
は与えられたテーブル内のカラムに関する情報を表示します。これはビューに対しても機能します。
FULL
キーワードは、各カラムに対するプレ カラム コメントと同じように、アウトプットが今持っている権限を含むように働きかけます。
db_name.tbl_name
を tbl_name FROM db_name
構文の代替として利用する事ができます。言い換えると、これらの2つのステートメントは同等という事です。
mysql>SHOW COLUMNS FROM mytable FROM mydb;
mysql>SHOW COLUMNS FROM mydb.mytable;
SHOW FIELDS
は
SHOW COLUMNS
の同義語です。テーブルのカラムを mysqlshow db_name
tbl_name
コマンドを利用してリストにする事もできます。
DESCRIBE
ステートメントは SHOW COLUMNS
に似た情報を提供します。詳しくは 項 「DESCRIBE
構文」 を参照してください。
SHOW CONTRIBUTORS
構文SHOW CONTRIBUTORS
SHOW CONTRIBUTORS
ステートメントは、MySQL のソ-スに貢献した人や、MySQL AB サポートを引き起こす情報を表示します。それぞれの貢献者に対して、 Name
、Location
、そして Comment
値を表示します。
このステートメントは、MySQL 5.1.12 で追加されました。
SHOW CREATE DATABASE
構文SHOW CREATE {DATABASE | SCHEMA} db_name
与えられたデータベースを作成する CREATE DATABASE
ステートメントを表示します。SHOW CREATE SCHEMA
は SHOW CREATE DATABASE
の同義語です。
mysql>SHOW CREATE DATABASE test\G
*************************** 1. row *************************** Database: test Create Database: CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */ mysql>SHOW CREATE SCHEMA test\G
*************************** 1. row *************************** Database: test Create Database: CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */
SHOW CREATE DATABASE
は SQL_QUOTE_SHOW_CREATE
オプションの値に従ってテーブルとカラム名を引用します。詳しくは 項 「SET
構文」 を参照してください。
SHOW CREATE EVENT
SHOW CREATE EVENT event_name
このステートメントは、与えられたイベントを再作成する為に必要な CREATE EVENT
ステートメントを表示します。例えば、(同じイベント e_daily
が定義され、その後 項15. 「SHOW EVENTS
」 に変更された物を利用):
mysql> SHOW CREATE EVENT test.e_daily\G *************************** 1. row *************************** Event: e_daily Create Event: CREATE EVENT e_daily ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP + INTERVAL 6 HOUR ENABLE COMMENT 'Saves total number of sessions and clears the table once per day.' DO BEGIN INSERT INTO site_activity.totals (when, total) SELECT CURRENT_TIMESTAMP, COUNT(*) FROM site_activity.sessions; DELETE FROM site_activity.sessions; END
アウトプットは、それが作成されたステータスよりも、イベントの現在のステータス(ENABLE
)を反映するという事を覚えておいて下さい。
このステートメントは、MySQL 5.1.6 でインプリメントされました。
SHOW CREATE PROCEDURE
と SHOW CREATE FUNCTION
構文SHOW CREATE {PROCEDURE | FUNCTION} sp_name
これらのステートメントは MySQL 拡張子です。それらは、SHOW CREATE TABLE
と似て、名づけられたルーチンを再作成する為に利用できる精密な文字列を返します。そのステートメントは、あなたがそのルーチンの持ち主になるか、mysql.proc
テーブルに SELECT
アクセスを持つ事を要求します。
mysql> SHOW CREATE FUNCTION test.hello\G
*************************** 1. row ***************************
Function: hello
sql_mode:
Create Function: CREATE FUNCTION `test`.`hello`(s CHAR(20)) »
RETURNS CHAR(50)
RETURN CONCAT('Hello, ',s,'!')
SHOW CREATE TABLE
構文SHOW CREATE TABLE tbl_name
与えられたテーブルを作成する CREATE TABLE
ステートメントを表示します。このステートメントも、ビューと共に機能します。
mysql> SHOW CREATE TABLE t\G
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE t (
id INT(11) default NULL auto_increment,
s char(60) default NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM
SHOW CREATE TABLE
は SQL_QUOTE_SHOW_CREATE
オプションの値に従ってテーブルとカラム名を引用します。詳しくは 項 「SET
構文」 を参照してください。
SHOW CREATE VIEW
構文SHOW CREATE VIEW view_name
このステートメントは、与えられたビューを作成する CREATE VIEW
ステートメントを表示します。
mysql> SHOW CREATE VIEW v;
+------+----------------------------------------------------+
| View | Create View |
+------+----------------------------------------------------+
| v | CREATE VIEW `test`.`v` AS select 1 AS `a`,2 AS `b` |
+------+----------------------------------------------------+
SHOW CREATE VIEW
の利用は、問題になっているビューに SHOW VIEW
権限と SELECT
権限を必要とします。
VIEWS
テーブルを含む INFORMATION_SCHEMA
から、ビュー オブジェクトに関する情報を得る事ができます。詳しくは 項21.15. 「INFORMATION_SCHEMA VIEWS
テーブル」 を参照してください。
SHOW DATABASES
構文SHOW {DATABASES | SCHEMAS} [LIKE 'pattern
']
SHOW DATABASES
は MySQL サーバ ホスト上のデータベースをリストにします。SHOW SCHEMAS
は SHOW DATABASES
の同義語です。
グローバル SHOW DATABASES
権限を持っていない限り、自分が何かしらの権限を持つデータベースしか見る事ができません。mysqlshow コマンドを利用してこのリストを手に入れる事もできます。
もしサーバが --skip-show-database
オプションを利用してスタートしたら、SHOW DATABASES
権限を持っていない限り、このステートメントを利用する事は絶対にできません。
SHOW SCHEMAS
を利用する事もできます。
SHOW ENGINE
構文SHOW ENGINE engine_name
{LOGS | STATUS | MUTEX}
SHOW ENGINE
はストレージ エンジンに関するログやステータス情報を表示します。現在次のステートメントがサポートされています。
SHOW ENGINE INNODB STATUS SHOW ENGINE INNODB MUTEX SHOW ENGINE NDB STATUS
SHOW ENGINE INNODB STATUS
と SHOW ENGINE INNODB MUTEX
の古い(または廃止された)同義語は SHOW INNODB STATUS
と SHOW MUTEX STATUS
です。
SHOW ENGINE INNODB STATUS
は InnoDB
ストレージエンジンの状態に関する広範囲な情報を表示します。
InnoDB
モニタは InnoDB
処理に関する追加情報を提供します。詳しくは 項1. 「SHOW ENGINE INNODB STATUS
と InnoDB
モニタ」 を参照してください。
SHOW ENGINE INNODB MUTEX
は InnoDB
ミューテックス統計を表示します。アウトプット フィールドは次に紹介されています。
Type
常に InnoDB
です。
Name
それがインプリメントされたミューテックス名とソース ファイル。例:&pool->mutex:mem0pool.c
ミューテックス名はその目的を指示します。例えば、log_sys
ミューテックスは InnoDB
ログ サブシステムに利用され、ログ活動がどれほど集中しているのかを指示します。buf_pool
ミューテックスは InnoDB
バッファ プールを保護します。
Status
ミューテックス ステータスフィールドはいくつかの値を含んでいます。
count
は、ミューテックスが何回要求されたかを指示します。
spin_waits
はスピンロックが何回起動しなければいけなかったかを指示します。
spin_rounds
はスピンロック ラウンドの数を指示します。(spin_rounds
を spin_waits
で割ると、平均ラウンド カウントがわかります。)
os_waits
は OS の待機数を指示します。これは、スピンロックが機能しなかった時に起こります。(ミューテックスはスピンロックの最中にロックされておらず、OSに従い、待つ必要がありました。)
os_yields
はスレッドがミューテックスをロックしようと試みて、そのタイムスライスを放棄し、OSに従う回数を指示します。(別のスレッドが起動する事を許可すると、ミューテックスをロックする為にそれを自由にするという仮定の下。)
os_wait_times
は、もし timed_mutexes
システム変数が1であれば(ON
)、OS 待機にかかった時間を(分で)指示します。 もし timed_mutexes
が0であれば(OFF
)タイミングが無効になるので、os_wait_times
は0です。timed_mutexes
はデフォルトでオフになっています。
このステートメントからの情報は、システムの問題を診断するのに利用する事ができます。例えば、spin_waits
と spin_rounds
の大きい値は拡張性の問題を指示するでしょう。
もしサーバが、有効な NDBCLUSTER
ストレージ エンジンを持っていたら、SHOW ENGINE NDB STATUS
は接続されたデータノード、クラスタ接続、そしてクラスタ ビンログ エポックなどのクラスタ ステータス情報を表示します。
SHOW ENGINE NDB STATUS
からのアウトプット例はここに表されています。— MySQL 5.0 内のステートメントによって表示されていた物からかなり変更されている事に注意してください。
mysql> SHOW ENGINE NDB STATUS\G
*************************** 1. row ***************************
Type: ndbcluster
Name: connection
Status: cluster_node_id=6, connected_host=179,
connected_port=1186, number_of_storage_nodes=4,
number_of_ready_storage_nodes=4, connect_count=0
*************************** 2. row ***************************
Type: ndbcluster
Name: binlog
Status: latest_epoch=0, latest_trans_epoch=2226134,
latest_received_binlog_epoch=0, latest_handled_binlog_epoch=0,
latest_applied_binlog_epoch=0
2 rows in set (0.00 sec)
In MySQL 5.0 では、SHOW ENGINE INNODB MUTEX
は SHOW MUTEX STATUS
として呼び出されます。後者のステートメントは似たような情報を表示しますが、それは少し異なるアウトプット フォーマットになります。
SHOW ENGINE BDB LOGS
は以前は BDB
ログ ファイルのステータス情報を表示しました。MySQL 5.1.12 にもあるように、BDB
ストレージ エンジンはもうサポートされていませんし、このステートメントは警告を作成します。
SHOW ENGINES
構文SHOW [STORAGE] ENGINES
SHOW ENGINES
はサーバのストレージ エンジンについてのステータス情報を表示します。これは特に、ストレージ エンジンがサポートされているのか、またはデフォルト
エンジンが何なのかを確認するのに便利です。SHOW TABLE TYPES
は廃止予定の同義語です。
mysql> SHOW ENGINES\G
*************************** 1. row ***************************
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 2. row ***************************
Engine: MyISAM
Support: DEFAULT
Comment: Default engine as of MySQL 3.23 with great performance
Transactions: NO
XA: NO
Savepoints: NO
*************************** 3. row ***************************
Engine: InnoDB
Support: YES
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
*************************** 4. row ***************************
Engine: EXAMPLE
Support: YES
Comment: Example storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 5. row ***************************
Engine: ARCHIVE
Support: YES
Comment: Archive storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 6. row ***************************
Engine: CSV
Support: YES
Comment: CSV storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 7. row ***************************
Engine: BLACKHOLE
Support: YES
Comment: /dev/null storage engine (anything you write »
to it disappears)
Transactions: NO
XA: NO
Savepoints: NO
*************************** 8. row ***************************
Engine: FEDERATED
Support: YES
Comment: Federated MySQL storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 9. row ***************************
Engine: MRG_MYISAM
Support: YES
Comment: Collection of identical MyISAM tables
Transactions: NO
XA: NO
Savepoints: NO
SHOW ENGINES
からのアウトプットは、使用される MySQL バージョンや別の要因によって変わります。Support
カラム内に表されている値は、ここに表されているように、別の機能に対するサーバのサポート レベルを指示します。
値 | 意味 |
YES |
機能はサポートされており、アクティブです。 |
NO |
機能はサポートされていません。 |
DISABLED |
機能はサポートされていますが、無効になっています。 |
NO
の値は、サーバはその機能に対するサポート無しでコンパイルされた為、ランタイムに起動する事はできないという事を意味します。
DISABLED
の値は、サーバがその機能を無効にするオプションを利用してスタートされたか、それを有効にする為に必要な全てのオプションが与えられなかった為に起こります。後者の場合、エラー
ログ ファイルは、なぜオプションが無効になったのかを指示する理由を含んでいるはずです。詳しくは 項 「エラー ログ」 を参照してください。
もし、サーバがストレージ エンジンの DISABLED
をサポートする為にコンパイルされたのに、--skip-engine
オプションを利用してスタートされたら、それも発見するかもしれません。例えば、--skip-innodb
は InnoDB
エンジンを無効にします。NDB Cluster
ストレージ エンジンにとっては、DISABLED
は、サーバは MySQL クラスタへのサポートを利用してコンパイルされたが、スタートするのに --ndb-cluster
オプションは利用されなかった、という事を意味します。
全ての MySQL サーバは、MyISAM
がデフォルトのストレージ エンジンなので、MyISAM
テーブルをサポートします。
Transactions
、XA
、そして Savepoints
カラムが MySQL 5.1.2 で追加されました。それらはそれぞれストレージ エンジンが、トランザクション、XA トランザクション、そしてセーブポイントをサポートするかどうかを指示します。
SHOW ERRORS
構文SHOW ERRORS [LIMIT [offset
,]row_count
] SHOW COUNT(*) ERRORS
このステートメントは、エラー、警告、そして注意を表示する代わりに、エラーのみを表示するという事以外、SHOW WARNINGS
と似ています。
LIMIT
条項は SELECT
ステートメントに対するのと同じ構文を持っています。詳しくは 項 「SELECT
構文」 を参照してください。
SHOW COUNT(*) ERRORS
ステートメントはエラーの数を表示します。error_count
変数からもこの数字を検索する事ができます。
SHOW COUNT(*) ERRORS; SELECT @@error_count;
更なる情報については、項31. 「SHOW WARNINGS
構文」 を参照してください。
SHOW EVENTS
SHOW EVENTS [FROMschema_name
] [LIKEpattern
]
SHOW EVENTS
は、その一番シンプルな形で、現在のスキーマ内の全てのイベントをリストにします。
mysql>SELECT CURRENT_USER(), SCHEMA();
+----------------+----------+ | CURRENT_USER() | SCHEMA() | +----------------+----------+ | jon@ghidora | myschema | +----------------+----------+ 1 row in set (0.00 sec) mysql>SHOW EVENTS\G
*************************** 1. row *************************** Db: myschema Name: e_daily Definer: jon@ghidora Type: RECURRING Execute at: NULL Interval value: 10 Interval field: INTERVAL_SECOND Starts: 2006-02-09 10:41:23 Ends: 0000-00-00 00:00:00 Status: ENABLED 1 row in set (0.01 sec)
SHOW EVENTS
のアウトプット内のカラム — INFORMATION_SCHEMA.EVENTS
テーブル内のカラムに似ているけれど同一ではない — がここに表されています。
Db
:イベントが定義されるスキーマ(データベース)
Name
:イベント名。
Definer
:イベントを作成したユーザアカウント。(username@hostname
)
Type
:ONE TIME
(一時的な)か RECURRING
の2つのうちの1つの値。
Execute At
:一時的なイベントが実行される時の日付と時刻。DATETIME
値として表示されます。
自動更新イベントにとっては、このカラムの値はいつでも NULL
です。
Interval Value
:自動更新イベントの為の、イベント実行の間のインターバルの回数。
一時的イベントにとっては、このカラムの値はいつでも NULL
です。
Interval Field
:自動更新イベントが、次の実行までの間のインターバルに利用される時間単位。
一時的イベントにとっては、このカラムの値はいつでも NULL
です。
Starts
:自動更新イベント開始の日付と時間。これは DATETIME
値として表示され、これはそのイベントに開始の日付と時間が定義されない時は空白です。(MySQL 5.1.8 以前は、このような場合 '0000-00-00 00:00:00'
がデフォルトでした。)
一時的イベントにとっては、このカラムの値はいつでも NULL
です。
Ends
:自動更新イベント終了の日付と時間。これは、そのイベント終了の日付と時刻が定義されていなければ、DATETIME
値として表示され、デフォルトは '0000-00-00 00:00:00'
になります。
一時的イベントにとっては、このカラムの値はいつでも NULL
です。
Status
:イベント ステータスENABLED
か DISABLED
のうちの1つです。
アクション ステートメントは SHOW EVENTS
のアウトプット内に表示されていない事に注意してください。
注意:Starts
と Ends
('0000-00-00 00:00:00'
以外)を表示する値は、現在はユニバーサル タイムを利用しています。しかし、ユニバーサル タイムのこのコンテキスト内での利用は変更される予定ですので、アプリケーション内でこれに依存するべきでは有りません。 (バグ #16420)項21.20. 「INFORMATION_SCHEMA EVENTS
テーブル」 もご参照ください。
異なるスキーマのイベントを見るには、FROM
条項を利用できます。例えば、もし test
スキーマが前出の例の中で選択されていたら、次のステートメントを利用して myschema
上で定義されたイベントを見る事ができました。
SHOW EVENTS FROM myschema;
LIKE
にパターンを1つプラスした物を利用して、イベント名上でこのステートメントに返されたリストをフィルタする事ができます。
このステートメントは、MySQL 5.1.6 で追加されました。
項21.20. 「INFORMATION_SCHEMA EVENTS
テーブル」 もご参照下さい。
注意:MySQL 5.1.11 とそれ以前のバージョンでは、SHOW EVENTS
は現在のユーザが定義者であるイベントだけを表示し、SHOW FULL EVENTS
ステートメントは、与えられたスキーマ上で全てのユーザによって定義されたイベントを見る為に利用されていました。SHOW FULL EVENTS
は MySQL 5.1.12 で削除されました。
SHOW GRANTS
構文SHOW GRANTS [FOR user
]
このステートメントは、MySQL ユーザ アカウントに供与された権限を複製する為に発行されなければいけない GRANT
ステートメントをリストにします。アカウントは、例えば 'jeffrey'@'localhost'
のように GRANT
ステートメントと同じフォーマットを利用して名づけられます。もしアカウント名のユーザ名部分だけを指定すると、ホスト名の '%'
部分が利用されます。アカウント名の指定についての追加情報に関しては、項3. 「GRANT
構文」 を参照してください。
mysql> SHOW GRANTS FOR 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
サーバに接続する為に利用している、アカウントに供与された権限をリストにする為に、次のステートメントを利用する事ができます。
SHOW GRANTS; SHOW GRANTS FOR CURRENT_USER; SHOW GRANTS FOR CURRENT_USER();
MySQL 5.1.12 にも有るように、もし SHOW GRANTS FOR CURRENT_USER
(またはそれと同等な構文)が DEFINER
コンテキスト内で利用されたら、SQL SECURITY DEFINER
を利用して定義されたストアド プロシージャ内などで)、表示された供与物は、呼び出し元の物ではなく、定義者の物です。
SHOW GRANTS
は名づけられたアカウントに明示的に供与された権限のみを表示します。そのアカウントに有効なその他の権限もあるかもしれませんが、それらは表示されません。例えば、もし匿名アカウントが存在したら、名づけられたアカウントはその権限を利用する事ができるかもしれませんが、SHOW GRANTS
はそれらを表示しません。
SHOW INDEX
構文SHOW INDEX FROMtbl_name
[FROMdb_name
]
SHOW INDEX
はテーブル インデックス情報を返します。そのフォーマットは、ODBC 内の SQLStatistics
コールのそれと似ています。
SHOW INDEX
は次のフィールドを返します。
Table
テーブル名。
Non_unique
もしインデックスが複製を含む事ができなければ0、もしできるなら1。
Key_name
インデックス名
Seq_in_index
1から始まる、インデックス内のカラム シーケンス番号
Column_name
カラム名
カラムがインデックス内でどのようにソートされるか。MySQL では、これは値 ‘A
’ (昇順)か NULL
(格納されない)を持つ事ができます。
インデックス内の固有値数の見積もりこれは、ANALYZE TABLE
か myisamchk -a を起動させる事で更新されます。Cardinality
は、整数として格納された統計に基づいてカウントされるので、小さいテーブルに対してもその値は必ずしも精密ではありません。濃度が高ければ、その分
MySQL が接合を行う時にインデックスを利用する可能性は高くなります。
Sub_part
もしカラムが部分的にだけインデックスされていた時のインデックスされる文字数、もしカラム全体がインデックスされていた時は NULL
です。
Packed
キーがどのようにパックされるのかを指示します。もしそうでなければ NULL
です。
Null
もしカラムが NULL
を含んでいたら、YES
を含みます。もしそうでなければ、カラムは NO
を含みます。
Index_type
使用されるインデックス方法(BTREE
、FULLTEXT
、HASH
、RTREE
)
Comment
様々な意見
db_name
.tbl_name
を tbl_name FROM db_name
構文の代替として利用する事ができます。これらの2つのステートメントは同等です。
SHOW INDEX FROM mytable FROM mydb; SHOW INDEX FROM mydb.mytable;
SHOW KEYS
は
SHOW INDEX
の同義語です。テーブルのインデックスを mysqlshow db_name
tbl_name
コマンドを利用してリストにする事もできます。
SHOW INNODB STATUS
構文SHOW INNODB STATUS
MySQL 5.1 では、これは廃止予定の SHOW ENGINE INNODB STATUS
の同義語です。詳しくは 項12. 「SHOW ENGINE
構文」 を参照してください。
SHOW OPEN TABLES
構文SHOW OPEN TABLES [FROMdb_name
] [LIKE 'pattern
']
SHOW OPEN TABLES
は、現在テーブル キャッシュ内で開かれている非 TEMPORARY
テーブルをリストします。詳しくは 項 「MySQL でのテーブルのオープンとクローズの方法」 を参照してください。
SHOW OPEN TABLES
は次のフィールドを返します。
Database
テーブルを含むデータベース
Table
テーブル名。
In_use
クエリによってテーブルが現在使用されている回数。もしカウントがゼロなら、そのテーブルは開いていますが現在は利用されていません。
Name_locked
テーブル名がロックされているかどうか名前ロックは、ドロップやテーブルのリネームのような操作に利用されます。
SHOW PLUGINS
構文SHOW PLUGINS
SHOW PLUGINS
は既知のプラグインの情報を表示します。
mysql> SHOW PLUGINS;
+------------+--------+----------------+---------+
| Name | Status | Type | Library |
+------------+--------+----------------+---------+
| MEMORY | ACTIVE | STORAGE ENGINE | NULL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL |
| InnoDB | ACTIVE | STORAGE ENGINE | NULL |
| ARCHIVE | ACTIVE | STORAGE ENGINE | NULL |
| CSV | ACTIVE | STORAGE ENGINE | NULL |
| BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL |
| FEDERATED | ACTIVE | STORAGE ENGINE | NULL |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL |
+------------+--------+----------------+---------+
SHOW PLUGIN
は MySQL 5.1.5 で追加され、5.1.9 で SHOW PLUGINS
という名前に変わりました。(5.1.9 では SHOW PLUGIN
は廃止予定で、警告を発します。)
SHOW PRIVILEGES
構文SHOW PRIVILEGES
SHOW PRIVILEGES
は MySQL サーバがサポートするシステム権限のリストを表示します。権限リストの詳細内容は、使用サーバのバージョンによって決まります。
mysql> SHOW PRIVILEGES\G
*************************** 1. row ***************************
Privilege: Alter
Context: Tables
Comment: To alter the table
*************************** 2. row ***************************
Privilege: Alter routine
Context: Functions,Procedures
Comment: To alter or drop stored functions/procedures
*************************** 3. row ***************************
Privilege: Create
Context: Databases,Tables,Indexes
Comment: To create new databases and tables
*************************** 4. row ***************************
Privilege: Create routine
Context: Functions,Procedures
Comment: To use CREATE FUNCTION/PROCEDURE
*************************** 5. row ***************************
Privilege: Create temporary tables
Context: Databases
Comment: To use CREATE TEMPORARY TABLE
...
SHOW PROCEDURE CODE
と SHOW FUNCTION CODE
構文SHOW {PROCEDURE | FUNCTION} CODE sp_name
これらのステートメントは、デバッグ サポートを利用して構築されたサーバに対してだけ有効な MySQL 拡張子です。それらは名づけられたルーチンの内部インプリメンテーション表現を表示します。そのステートメントは、あなたがそのルーチンの持ち主になるか、mysql.proc
テーブルに SELECT
アクセスを持つ事を要求します。
もし名づけられたルーチンが有効なら、各ステートメントは結果セットを作成します。結果セット内の各行は、ルーチン内の1つの 「instruction」 に対応します。最初のカラムは、0で始まる序数 Pos
です。2つ目のカラムは、SQL ステートメントや(通常元のソースから変更された物)ストアド ルーチン ヘッダに対してだけ意味を持つコマンドを含む
Instruction
です。
mysql>DELIMITER //
mysql>CREATE PROCEDURE p1 ()
->BEGIN
->DECLARE fanta INT DEFAULT 55;
->DROP TABLE t2;
->LOOP
->INSERT INTO t3 VALUES (fanta);
->END LOOP;
->END//
Query OK, 0 rows affected (0.00 sec) mysql>SHOW PROCEDURE CODE p1//
+-----+----------------------------------------+ | Pos | Instruction | +-----+----------------------------------------+ | 0 | set fanta@0 55 | | 1 | stmt 9 "DROP TABLE t2" | | 2 | stmt 5 "INSERT INTO t3 VALUES (fanta)" | | 3 | jump 2 | +-----+----------------------------------------+ 4 rows in set (0.00 sec)
この例の中では、非実行可能 BEGIN
と END
ステートメントは無くなっており、DECLARE variable_name
ステートメントに対しては、実行可能な部分だけが現れています。(デフォルトが割り当てられている部分)ソースから取り出された各ステートメントに対しては、後にタイプが続くコード文字
stmt
があります。(9は DROP
、5は INSERT
を意味する、という感じの物です。)最終行は、GOTO instruction #2
という意味を持つ jump 2
指示を含んでいます。
これらのステートメントは、MySQL 5.1.3 で追加されました。
SHOW PROCEDURE STATUS
と SHOW FUNCTION STATUS
構文SHOW {PROCEDURE | FUNCTION} STATUS [LIKE 'pattern
']
これらのステートメントは MySQL 拡張子です。これらは、データベース、名前タイプ、作成者、そして作成日と変更日などのような、ルーチンの性質を返します。もしパターンが指定されなければ、どのステートメントを利用しているかによって、全てのストアド プロシージャや全てのストアド ファンクションの情報がリストされます。
mysql> SHOW FUNCTION STATUS LIKE 'hello'\G
*************************** 1. row ***************************
Db: test
Name: hello
Type: FUNCTION
Definer: testuser@localhost
Modified: 2004-08-03 15:29:37
Created: 2004-08-03 15:29:37
Security_type: DEFINER
Comment:
INFORMATION_SCHEMA
内の ROUTINES
テーブルからストアド ルーチンに関する情報を得る事もできます。詳しくは 項21.14. 「INFORMATION_SCHEMA ROUTINES
テーブル」 を参照してください。
SHOW PROCESSLIST
構文SHOW [FULL] PROCESSLIST
SHOW PROCESSLIST
はどのスレッドが起動しているかを表示します。mysqladmin processlist コマンドを利用してこの情報を手に入れる事もできます。
もし PROCESS
権限を持っていれば、全てのスレッドを見る事ができます。そうでなければ、自分自身のスレッドのみ見る事ができます。(使用中のMySQL アカウントと関連しているスレッド)詳しくは
項3. 「KILL
構文」 を参照してください。もし FULL
キーワードを利用しなければ、各ステートメントの最初の100文字だけが Info
フィールドに表示されます。
MySQL Enterprise MySQL ネットワーク モニタリングとアドバイス サービス の読者は、プロセスが多すぎる時には、即時通知と専門家のアドバイスを受け取ります。追加情報については http://www-jp.mysql.com/products/enterprise/advisors.html を参照してください。
このステートメントは、「too many connections」 エラー メッセージを受け取り、何が起こっているのを確認したい時に大変役に立ちます。MySQL は、管理者がいつでもシステムに接続して確認できる事を保証する為、SUPER
権限を持つアカウントに利用される事ができる接続を1つ余分に確保します。(この権限を全てのユーザには与えていないと仮定しています。)
SHOW PROCESSLIST
のアウトプットは、次のようになるでしょう。
mysql> SHOW FULL PROCESSLIST\G *************************** 1. row *************************** Id: 1 User: system user Host: db: NULL Command: Connect Time: 1030455 State: Waiting for master to send event Info: NULL *************************** 2. row *************************** Id: 2 User: system user Host: db: NULL Command: Connect Time: 1004 State: Has read all relay log; waiting for the slave » I/O thread to update it Info: NULL *************************** 3. row *************************** Id: 3112 User: replikator Host: artemis:2204 db: NULL Command: Binlog Dump Time: 2144 State: Has sent all binlog to slave; waiting for binlog to be updated Info: NULL *************************** 4. row *************************** Id: 3113 User: replikator Host: iconnect2:45781 db: NULL Command: Binlog Dump Time: 2086 State: Has sent all binlog to slave; waiting for binlog to be updated Info: NULL *************************** 5. row *************************** Id: 3123 User: stefan Host: localhost db: apollon Command: Query Time: 0 State: NULL Info: SHOW FULL PROCESSLIST 5 rows in set (0.00 sec)
アウトプット カラムは次の意味を持っています。
Id
接続識別子。
User
ステートメントを発行した MySQL ユーザ。もしこれが system user
であれば、タスクを内部的に取り扱う為に、サーバによって生み出された非クライアント スレッドを参照します。これは、複製スレーブか遅れた行のハンドラに利用される
I/O または SQL スレッドになり得ます。 event_scheduler
はスケジュールされたイベントをモニタするスレッドを参照する事ができます。system user
か event_scheduler
には、Host
カラム内で指定されたホストはありません。
Host
ステートメントを発行するクライアントのホスト名(ホストが無い system user
以外)。SHOW PROCESSLIST
は、どのクライアントが何をしているかの究明を簡単にする為に、TCP/IP 接続のホスト名を host_name:client_port
フォーマットで報告します。
db
もし選択されれば、これがデフォルト データベースです。そうでなければ NULL
です。
Command
クライアント/サーバ プロトコルの COM_xxx
コマンドに対応するカラムの値。詳しくは 項 「ステータス変数」 を参照してください。
Command
値は、次のうちのどれかでしょう。Binlog Dump
, Change user
、Close stmt
、Connect
、Connect Out
、Create DB
、Daemon
、Debug
、Delayed insert
、Drop DB
、Error
、Execute
、Fetch
、Field List
、Init DB
、Kill
、Long Data
、Ping
、Prepare
、Processlist
、Query
、Quit
、Refresh
、Register Slave
、Reset stmt
、Set option
、Shutdown
、Sleep
、Statistics
、Table Dump
、Time
Time
ステートメントやコマンドの開始から現在までの、秒表示での時間。
State
次のうちのどれかになり得る、アクション、イベント、またはステート:After create
、Analyzing
、Changing master
、Checking master version
、Checking table
、Connecting to master
、Copying to group table
、Copying to tmp table
、Creating delayed handler
、Creating index
、Creating sort index
、Creating table from master dump
、Creating tmp table
、Execution of init_command
、FULLTEXT initialization
、Finished reading one binlog; switching to next binlog
、Flushing tables
、Killed
、Killing slave
、Locked
、Making temp file
、Opening master dump table
、Opening table
、Opening tables
、Processing request
、Purging old relay logs
、Queueing master event to the relay log
、Reading event from the relay log
、Reading from net
、Reading master dump table data
、Rebuilding the index on master dump table
、Reconnecting after a failed binlog dump request
、Reconnecting after a failed master event read
、Registering slave on master
、Removing duplicates
、Reopen tables
、Repair by sorting
、Repair done
、Repair with keycache
、Requesting binlog dump
、Rolling back
、Saving state
、Searching rows for update
、Sending binlog event to slave
、Sending data
、Sorting for group
、Sorting for order
、Sorting index
、Sorting result
、System lock
、Table lock
、Thread initialized
、Updating
、User lock
、Waiting for INSERT
、Waiting for master to send event
、Waiting for master update
、Waiting for slave mutex on exit
、Waiting for table
、Waiting for tables
、Waiting for the next event in relay log
、Waiting on cond
、Waiting to finalize termination
、Waiting to reconnect after a failed binlog dump request
、Waiting to reconnect after a failed master event read
、Writing to net
、allocating local table
、cleaning up
、closing tables
、converting HEAP to MyISAM
、copy to tmp table
、creating table
、deleting from main table
、deleting from reference tables
、discard_or_import_tablespace
、end
、freeing items
、got handler lock
、got old table
、info
、init
、insert
、logging slow query
、login
、preparing
、purging old relay logs
、query end
、removing tmp table
、rename
、rename result table
、reschedule
、setup
、starting slave
、statistics
、storing row into queue
、unauthenticated user
、update
、updating
、updating main table
、updating reference tables
、upgrading lock
、waiting for delay_list
、waiting for handler insert
、waiting for handler lock
、waiting for handler open
、Waiting for event from ndbcluster
最も一般的な State
値はこのセクションの残りの部分で説明されています。それ以外のほとんどの State
値は、サーバ内のバグを見つける為にだけ役に立ちます。複製サーバのプロセス ステートについての追加情報については、項 「レプリケーション実装の詳細」 も参照してください。
SHOW PROCESSLIST
ステートメントに対しては State
の値は NULL
です。
Info
スレッドが実行中のステートメント、または、もしそれがステートメントを何も実行していなければ NULL
になります。
SHOW PROCESSLIST
からのアウトプット内で主に見られるいくつかの State
値
Checking table
スレッドがテーブル チェック操作を行っています。
Closing tables
スレッドが変更されたテーブル データをディスクにフラッシュしている、そして使用されたテーブルを閉じているという意味です。この操作スピードは早いでしょう。もし速くなければ、ディスクがフルではないという事と、ディスクがそれほど頻繁に使用されていないという事を証明しなければいけません。
Connect Out
複製スレーブはそのマスタに接続しています。
Copying to group table
もしステートメントが異なる ORDER BY
と GROUP BY
基準を持っていたら、行はグループによってソートされ、テンポラリ テーブルにコピーされます。
Copying to tmp table
サーバはメモリ内のテンポラリ テーブルにコピーしています。
Copying to tmp table on disk
サーバはディスク上のテンポラリ テーブルにコピーしています。テンポラリ結果セットは tmp_table_size
よりも大きく、スレッドはメモリを保存する為にテンポラリ テーブルをイン メモリからディスク ベース フォーマットに変更しています。
Creating tmp table
スレッドはクエリに結果の一部を保持する為にテンポラリ テーブルを作成しています。
deleting from main table
サーバは複合テーブル削除の最初の部分を実行しています。最初のテーブルからの削除だけを行い、別の(参照)テーブルからの削除に利用されるフィールドとオフセットを保存しています。
deleting from reference tables
サーバは複合テーブル削除の2番目の部分を行っており、別のテーブルから一致したテーブルを削除しています。
Flushing tables
スレッドは FLUSH TABLES
を実行しており、全てのスレッドがそのテーブルを閉じるのを待っています。
FULLTEXT initialization
サーバは自然言語フル テキスト サーチを行う準備をしています。
停止する
誰かがスレッドに KILL
ステートメントを送り、そして次にキル フラッグを見つけた時異常終了するはずです。そのフラッグは MySQL 内の主要な各ループ内で確認されますが、場合によってはスレッドが停止するまでに少し時間がかかる場合があります。もしスレッドが別のスレッドにロックされていると、停止作業は別のスレッドがそのロックを解除するとすぐに効果を発揮します。
Locked
クエリは別のクエリによってロックされています。
Sending data
スレッドは SELECT
ステートメントの為に行を作成し、また、クライアントにデータを送っています。
Sorting for group
スレッドは GROUP BY
を満足させる為にソートを行っています。
Sorting for order
スレッドは ORDER BY
を満足させる為にソートを行っています。
Opening tables
スレッドはテーブルをオープンしようと試みています。この操作は、何かにオープンを邪魔されない限り、スピードが速いはずです。例えば、ALTER TABLE
か LOCK TABLE
ステートメントは、そのステートメントが終了するまでテーブルのオープンを邪魔する事ができます。
Reading from net
サーバはネットワークからパケットを読み込んでいます。
Removing duplicates
クエリは、MySQL が早い段階で独特な操作を最適化する事ができなくなるような方法で SELECT DISTINCT
を利用していました。この為、MySQL は結果をクライアントに送る前に全ての複製行を削除する為の特別な段階を必要とします。
Reopen table
スレッドはテーブルの為にロックを得ましたが、その後基礎となるテーブル構造が変更された事に気が付きました。それはロックを解除し、テーブルを閉じ、そして再度オープンしようとしています。
Repair by sorting
修復コードはインデックスを作成する為にソートを利用しています。
Repair with keycache
修復コードはキー キャッシュを通してキー作成を1つ1つ利用しています。これは Repair by sorting
と比べるとかなり遅い作業です。
Searching rows for update
スレッドは、全ての一致する行を更新する前にそれらを見つける為の第一段階を行っています。もし UPDATE
が、関連する行を見つける為に利用されたインデックスを変更していれば、これが行われなければいけません。
Sleeping
スレッドは新しいステートメントをスレッドにに送る為のクライアントを待っています。
statistics
サーバはクエリ実行計画を開発する統計を計算しています。
スレッドは、テーブルの為の外部システム ロックを得るのを待っています。もし同じテーブルにアクセスする複数の mysqld サーバを利用していなければ、--skip-external-locking
オプションを利用してシステム ロックを無効にする事ができます。
unauthenticated user
クライアント接続への関連はしたが、そのクライアント ユーザの認証はまだ行われていないスレッドの状態。
Upgrading lock
INSERT DELAYED
ハンドラは行を挿入する為に、テーブルにロックを得ようとしています。
Updating
スレッドは更新する行を探していて、それらを更新しています。
updating main table
サーバは複合テーブル更新の最初の部分を実行しています。最初のテーブルの更新だけを行い、別の(参照)テーブルの更新に利用されるフィールドとオフセットを保存しています。
updating reference tables
サーバは複合テーブル更新の2番目の部分を行っており、別のテーブルから一致したテーブルを更新しています。
User Lock
スレッドは GET_LOCK()
上で待っています。
Waiting for event from ndbcluster
サーバは MySQL クラスタ内の SQL ノードとして機能しており、クラスタ管理ノードに接続されています。
Waiting for tables
スレッドは、テーブルの基礎構造が変更され、その新しい構造を得る為にテーブルを再度オープンしなければいけないという通知を受け取りました。しかし、テーブルを再度オープンするには、他の全てのスレッドが問題になっているテーブルを閉じるまで待たなければいけません。
もし別のスレッドが FLUSH TABLES
か、次にある問題のテーブル上のステートメントの中のひとつを利用すると、この通知が出されます。FLUSH TABLES tbl_name
、ALTER TABLE
、RENAME TABLE
、REPAIR TABLE
、ANALYZE TABLE
、または OPTIMIZE TABLE
waiting for handler insert
INSERT DELAYED
ハンドラは全ての未解決の挿入を処理し、新しい物を待っています。
Writing to net
サーバはネットワークにパケットを書き込んでいます。
ほとんどのステートが大変速い操作に対応します。もしスレッドがこれらのステートのどれかに何秒間も留まれば、調査が必要な問題があるかもしれません。
SHOW SCHEDULER STATUS
構文SHOW SCHEDULER STATUS
このステートメントは、イベント スケジューラの状態に関連したでバグ情報を提供します。これは、MySQL 5.1.11 の -debug
構造内でだけサポートされ、5.1.12 とそれ以降のリリースでは削除されました。
アウトプット例がここに表示されています。
+--------------------------------+---------------------+ | Name | Value | +--------------------------------+---------------------+ | scheduler state | INITIALIZED | | thread_id | NULL | | scheduler last locked at | init_scheduler::313 | | scheduler last unlocked at | init_scheduler::318 | | scheduler waiting on condition | 0 | | scheduler workers count | 0 | | scheduler executed events | 0 | | scheduler data locked | 0 | | queue element count | 1 | | queue data locked | 0 | | queue data attempting lock | 0 | | queue last locked at | create_event::218 | | queue last unlocked at | create_event::222 | | queue last attempted lock at | ::0 | | queue waiting on condition | 0 | | next activation at | 0-00-00 00:00:00 | +--------------------------------+---------------------+
MySQL 5.1.12 以降の物では、この情報は mysqladmin debug を利用して得る事ができます。(詳しくは 項7.9. 「mysqladmin — MySQL サーバの管理を行うクライアント」 をご確認ください。)イベント スケジューラ ステート情報を得る事に関する情報については、項19.4. 「Event Scheduler Status」 を参照してください。
SHOW STATUS
構文SHOW [GLOBAL | SESSION] STATUS [LIKE 'pattern
']
SHOW STATUS
はサーバ ステータス情報を提供します。この情報は、mysqladmin extended-status コマンドを利用して得る事もできます。
部分的なアウトプットがここに表示されています。名前と値のリストは、お使いのサーバとは異なる場合があります。各変数の意味は 項 「ステータス変数」 で説明しています。
mysql> SHOW STATUS;
+--------------------------+------------+
| Variable_name | Value |
+--------------------------+------------+
| Aborted_clients | 0 |
| Aborted_connects | 0 |
| Bytes_received | 155372598 |
| Bytes_sent | 1176560426 |
| Connections | 30023 |
| Created_tmp_disk_tables | 0 |
| Created_tmp_tables | 8340 |
| Created_tmp_files | 60 |
...
| Open_tables | 1 |
| Open_files | 2 |
| Open_streams | 0 |
| Opened_tables | 44600 |
| Questions | 2026873 |
...
| Table_locks_immediate | 1920382 |
| Table_locks_waited | 0 |
| Threads_cached | 0 |
| Threads_created | 30022 |
| Threads_connected | 1 |
| Threads_running | 1 |
| Uptime | 80380 |
+--------------------------+------------+
LIKE
条項を利用すると、パターンと一致する名前を持つ変数の行のみを表示します。
mysql> SHOW STATUS LIKE 'Key%';
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| Key_blocks_used | 14955 |
| Key_read_requests | 96854827 |
| Key_reads | 162040 |
| Key_write_requests | 7589728 |
| Key_writes | 3813196 |
+--------------------+----------+
GLOBAL
修飾子を利用すると、SHOW STATUS
は MySQL への全ての接続のステータス値を表示します。SESSION
を利用すると、現在の接続のステータス値を表示します。 もし修飾子が無ければ、デフォルトは SESSION
です。LOCAL
は SESSION
の同義語です。
いくつかのステータス変数は、グローバル値しか持っていません。それらに対しては、GLOBAL
と SESSION
の両方に同じ値を得ます。
SHOW TABLE STATUS
構文SHOW TABLE STATUS [FROMdb_name
] [LIKE 'pattern
']
SHOW TABLE STATUS
は SHOW TABLES
のように機能しますが、各テーブルに関する多くの情報を提供します。mysqlshow --status db_name
コマンドを利用してこのリストを得る事もできます。
このステートメントもまたビューの情報を表示します。
SHOW TABLE STATUS
は次のフィールドを返します。
Name
テーブル名。
Engine
テーブルのストレージ エンジン。詳しくは 章 13. ストレージエンジンとテーブルタイプ を参照してください。
Version
テーブルの .frm
file. のバージョン番号。
Row_format
行のストレージ フォーマット(Fixed
、Dynamic
、Compressed
、Redundant
、Compact
)InnoDB
テーブルのフォーマットは Redundant
か Compact
としてレポートされます。
Rows
行数MyISAM
のようないくつかのストレージ エンジンは、正確なカウントを格納します。InnoDB
のような別のストレージ エンジンにとっては、この値はおおよその物であり、実際の値とは40から50%くらい異なります。そのような場合は、正確なカウントを得る為に
SELECT COUNT(*)
を利用してください。
Rows
値は INFORMATION_SCHEMA
データベース内のテーブルには NULL
です。
Avg_row_length
平均行長
Data_length
データ ファイルの長さ
Max_data_length
データ ファイルの最大長データ ポインタ サイズが利用されたと仮定して、これはテーブル内に格納できるデータの総バイト数です。
Index_length
インデックス ファイルの長さ
Data_free
割り当てられたけれど使用されていないバイト数
Auto_increment
次の AUTO_INCREMENT
値。
Create_time
テーブルが作成された時。
Update_time
データファイルが最後に更新された時。いくつかのストレージ エンジンに対しては、この値は NULL
です。例えば、InnoDB
はそのテーブルスペース内に複数のテーブルを格納し、データ ファイルタイムスタンプは適応しません。
Check_time
テーブルが最後に確認された時。値が毎回 NULL
の場合、全てのストレージ エンジンはこの時更新しません。
Collation
テーブルの文字セットと照合。
Checksum
ライブチェックサム値(もしあれば)。
Create_options
CREATE TABLE
と共に利用される特別オプション。
Comment
テーブルを作成する時に利用されるコメント(またはなぜ MySQL がテーブル情報にアクセスできなかったのかに関する情報)。
InnoDB
テーブルは、テーブル コメントの中で、 それが属する所にテーブルスペースのフリー スペースを報告します。共有テーブルスペースの中にあるテーブルには、これが共有テーブルスペースの空きスペースです。もし複数のテーブルスペースを利用していて、そのテーブルが専用のテーブルスペースを所有していたら、そのフリー
スペースはそのテーブルだけの物です。
MEMORY
テーブルに対して、Data_length
、Max_data_length
、そして Index_length
値は割り当てられたメモリの実際の量を概算します。割り当てアルゴリズムは、割り当て操作の数を減らす為に、大量のメモリを確保します。
NDB Cluster
テーブルに対して、BLOB
カラムは考慮されないという例外はありますが、このステートメントのアウトプットは Avg_row_length
と Data_length
カラムのおおよその値を表します。 さらに、レプリカの数が Comment
カラム内に表示されます。(number_of_replicas
として)
ビューに関しては、Name
がビュー名を指示し、Comment
が view
と言う事以外、SHOW TABLE STATUS
に表示される全てのフィールドは NULL
です。
SHOW TABLES
構文SHOW [FULL] TABLES [FROMdb_name
] [LIKE 'pattern
']
SHOW TABLES
は、与えられたテーブル内で非 TEMPORARY
テーブルをリストします。mysqlshow db_name
コマンドを利用してこのリストを得る事もできます。
このステートメントはデータベース内のビューもリストします。FULL
修飾子は SHOW FULL TABLES
が第2のアウトプット カラムを表示するようにサポートされています。第2カラムの値は、テーブルに対しては BASE TABLE
で、ビューに対しては VIEW
です。
注意:もしテーブルに権限を持っていなかったら、テーブルは SHOW TABLES
か mysqlshow db_name からのアウトプット内に現れません。
SHOW TRIGGERS
構文SHOW TRIGGERS [FROMdb_name
] [LIKEexpr
]
SHOW TRIGGERS
は最近 MySQL サーバ上で定義されたトリガをリストします。このステートメントは SUPER
権限を必要とします。
項18.3. 「トリガの使用」 内で定義されている、トリガ ins_sum
に対しては、このステートメントのアウトプットはここに表されているようになります。
mysql> SHOW TRIGGERS LIKE 'acc%'\G
*************************** 1. row ***************************
Trigger: ins_sum
Event: INSERT
Table: account
Statement: SET @sum = @sum + NEW.amount
Timing: BEFORE
Created: NULL
sql_mode:
Definer: myname@localhost
注意:LIKE
条項を SHOW TRIGGERS
と利用する時、一致する式(expr
) は、トリガ名ではなく、トリガが宣言されたテーブル名と比較されます。
mysql> SHOW TRIGGERS LIKE 'ins%';
Empty set (0.01 sec)
このステートメントのアウトプット内のカラムに関する簡単な説明はここに表されています。
Trigger
トリガ名。
Event
トリガを有効化するイベント:'INSERT'
、'UPDATE'
、または 'DELETE'
の1つ。
Table
トリガが定義されるテーブル。
Statement
トリガが有効化された時に実行されるステートメント。これは INFORMATION_SCHEMA.TRIGGERS
の ACTION_STATEMENT
内に表されているテキストと同じです。
Timing
'BEFORE'
か 'AFTER'
の2つの値の1つ。
Created
現在、このカラムの値はいつでも NULL
です。
sql_mode
トリガが実行する時に有効な SQL モード。
Definer
トリガを作成したアカウント。
項21.16. 「INFORMATION_SCHEMA TRIGGERS
テーブル」 もご参照ください。
SHOW VARIABLES
構文SHOW [GLOBAL | SESSION] VARIABLES [LIKE 'pattern
']
SHOW VARIABLES
は MySQL システム変数の値を表示します。mysqladmin variables コマンドを利用してこの情報を得る事もできます。
GLOBAL
修飾子を利用すると、SHOW VARIABLES
は MySQL への新しい接続に利用される値を表示します。SESSION
を利用すると、現在の接続に有効な値を表示します。 もし修飾子が無ければ、デフォルトは SESSION
です。LOCAL
は SESSION
の同義語です。
もしデフォルトのシステム変数が不適切であれば、mysqld がスタートした時にコマンド オプションを利用してそれらを設定する事ができ、また SET
ステートメントを利用してほとんどの物をランタイムに変更できます。項 「システム変数の使用」 と 項 「SET
構文」 を参照して下さい。
部分的なアウトプットがここに表示されています。名前と値のリストは、お使いのサーバとは異なる場合があります。項 「システム変数」 で各変数の意味が説明されており、項 「サーバパラメータのチューニング」 にはそれらを調整する為の情報が紹介されています。
mysql> SHOW VARIABLES;
+---------------------------------+---------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| automatic_sp_privileges | ON |
| back_log | 50 |
| basedir | /home/jon/bin/mysql-5.1/ |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set_client | latin1 |
| character_set_connection | latin1 |
...
| max_user_connections | 0 |
| max_write_lock_count | 4294967295 |
| multi_range_count | 256 |
| myisam_data_pointer_size | 6 |
| myisam_max_sort_file_size | 2147483647 |
| myisam_recover_options | OFF |
| myisam_repair_threads | 1 |
| myisam_sort_buffer_size | 8388608 |
| ndb_autoincrement_prefetch_sz | 32 |
| ndb_cache_check_time | 0 |
| ndb_force_send | ON |
...
| time_zone | SYSTEM |
| timed_mutexes | OFF |
| tmp_table_size | 33554432 |
| tmpdir | |
| transaction_alloc_block_size | 8192 |
| transaction_prealloc_size | 4096 |
| tx_isolation | REPEATABLE-READ |
| updatable_views_with_limit | YES |
| version | 5.1.6-alpha-log |
| version_comment | Source distribution |
| version_compile_machine | i686 |
| version_compile_os | suse-linux |
| wait_timeout | 28800 |
+---------------------------------+---------------------------+
LIKE
条項を利用すると、パターンと一致する名前を持つ変数の行のみを表示します。
特定の変数に行を得る為には、次に表示されているように LIKE
条項を利用してください。
SHOW VARIABLES LIKE 'max_join_size'; SHOW SESSION VARIABLES LIKE 'max_join_size';
名前がパターンと一致する変数のリストを得るには、LIKE
条項内の ‘%
’ ワイルドカード文字を利用してください。
SHOW VARIABLES LIKE '%size%'; SHOW GLOBAL VARIABLES LIKE '%size%';
ワイルドカード文字は、一致するパターン内のどの場所でも利用する事ができます。厳密に言うと、‘_
’ は全ての単一文字と一致するワイルドカードなので、完全に一致させる為に ‘\_
’ の時は拡張する必要があります。実際には、これはほとんど必要ありません。
SHOW WARNINGS
構文SHOW WARNINGS [LIMIT [offset
,]row_count
] SHOW COUNT(*) WARNINGS
SHOW WARNINGS
は、メッセージを作成した最後のステートメントから生じたエラー、警告、そしてノート メッセージを表示、または、もしテーブルを利用した最後のステートメントが何のメッセージも作成しなければ、何も表示しません。関連ステートメントである
SHOW ERRORS
はエラーだけを表示します。詳しくは 項14. 「SHOW ERRORS
構文」 を参照してください。
テーブルを利用するそれぞれの新ステートメントに対して、メッセージのリストはリセットされます。
SHOW COUNT(*) WARNINGS
ステートメントはエラー、警告、そしてノートの総数を表示します。warning_count
変数からもこの数字を検索する事ができます。
SHOW COUNT(*) WARNINGS; SELECT @@warning_count;
もし max_error_count
システム変数が、全てのメッセージの格納ができないほど低く設定されると、warning_count
の値は SHOW WARNINGS
によって表示されるメッセージ数よりも大きくなります。このセクションの後の方で表示される例で、これがどのように起きるのか紹介しています。
LIMIT
条項は SELECT
ステートメントに対するのと同じ構文を持っています。詳しくは 項 「SELECT
構文」 を参照してください。
MySQL サーバは、最後のステートメントから生じたエラー、警告、そしてノートの総数を送り返します。もし C API を利用していれば、この値は
mysql_warning_count()
をコールする事で得る事ができます。詳しくは 項72. 「mysql_warning_count()
」 を参照してください。
警告は、LOAD DATA INFILE
や、また DML INSERT
、UPDATE
、CREATE TABLE
、そして ALTER TABLE
のような DML ステートメントなどのようなステートメントに対して作成されます。
次の DROP TABLE
ステートメントはノートをもたらします:
mysql>DROP TABLE IF EXISTS no_such_table;
mysql>SHOW WARNINGS;
+-------+------+-------------------------------+ | Level | Code | Message | +-------+------+-------------------------------+ | Note | 1051 | Unknown table 'no_such_table' | +-------+------+-------------------------------+
ここに、CREATE TABLE
に対する構文警告と、INSERT
に対する変換警告を表すシンプルな例があります。
mysql>CREATE TABLE t1 (a TINYINT NOT NULL, b CHAR(4)) TYPE=MyISAM;
Query OK, 0 rows affected, 1 warning (0.00 sec) mysql>SHOW WARNINGS\G
*************************** 1. row *************************** Level: Warning Code: 1287 Message: 'TYPE=storage_engine' is deprecated, use 'ENGINE=storage_engine' instead 1 row in set (0.00 sec) mysql>INSERT INTO t1 VALUES(10,'mysql'),(NULL,'test'),
->(300,'Open Source');
Query OK, 3 rows affected, 4 warnings (0.01 sec) Records: 3 Duplicates: 0 Warnings: 4 mysql>SHOW WARNINGS\G
*************************** 1. row *************************** Level: Warning Code: 1265 Message: Data truncated for column 'b' at row 1 *************************** 2. row *************************** Level: Warning Code: 1263 Message: Data truncated, NULL supplied to NOT NULL column 'a' at row 2 *************************** 3. row *************************** Level: Warning Code: 1264 Message: Data truncated, out of range for column 'a' at row 3 *************************** 4. row *************************** Level: Warning Code: 1265 Message: Data truncated for column 'b' at row 3 4 rows in set (0.00 sec)
エラー警告、そしてノート メッセージの最高格納数は max_error_count
システム変数によってコントロールされています。デフォルトにより、その値は64です。格納するメッセージ数を変更したければ、max_error_count
の値を変更してください。次の例では ALTER TABLE
ステートメントは3つの警告メッセージを発生しますが、max_error_count
が1に設定されている為、そのうちの1つしか格納されません。
mysql>SHOW VARIABLES LIKE 'max_error_count';
+-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_error_count | 64 | +-----------------+-------+ 1 row in set (0.00 sec) mysql>SET max_error_count=1;
Query OK, 0 rows affected (0.00 sec) mysql>ALTER TABLE t1 MODIFY b CHAR;
Query OK, 3 rows affected, 3 warnings (0.00 sec) Records: 3 Duplicates: 0 Warnings: 3 mysql>SELECT @@warning_count;
+-----------------+ | @@warning_count | +-----------------+ | 3 | +-----------------+ 1 row in set (0.01 sec) mysql>SHOW WARNINGS;
+---------+------+----------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------+ | Warning | 1263 | Data truncated for column 'b' at row 1 | +---------+------+----------------------------------------+ 1 row in set (0.00 sec)
警告を無効にするには、max_error_count
を0に設定してください。この場合、warning_count
はいくつの警告が起きたか指示しますが、どのメッセージも格納はされません。
SQL_NOTES
セッション変数を0に設定して、Note
レベルの警告が記録されないようにできます。