2014/05/22

MySQLで(僕が)よく使う基本的コマンドまとめ

最近MySQLを使うことが増えているので、僕がよく使うコマンドを備忘録的にまとめてみた。全部基本的なコマンドなので特に面白いことは無く、誰かが得するわけでも無く、ただただ僕のためだけのまとめです。


現在実行されているSQLなどのプロセスの一覧を確認する。実行時間が見えるので長時間化しているSQLを特定するのに役立つ。
show processlist;
show processlistだとSQL文が省略されてしまう。完全行で出力する場合はfullを付与する。
show full processlist;
データベースの一覧を表示する。
show databases;
使うデータベースを指定する。
use DATABASE;
テーブルの一覧を表示する。
show tables;
テーブルの構成を確認する。
desc TABLE_NAME;
テーブルのINDEXを確認する。
show index from TABLE_NAME;
実行計画を確認する。
explain SQL文(ex: explan select * from mydata);
CSVファイルをTABLEにインポートする。MySQLが動いているサーバ上にファイルがある場合。
load data infile "FILE.csv" into table TABLE_NAME;
MySQLに接続しているクライアントプログラム側にファイルがある場合、例えばEC2からRDSに繋いでいる場合などは、localオプションを使用してクライアントプログラム側のファイルをloadする。
load data local infile "FILE.csv" into table TABLE_NAME;
普通にload dataするとinsertが実行されるので主キーが重複しているとスキップされる。主キーが重複しているとupdateしたい場合はreplaceオプションを付与する。
load data local infile "FILE.csv" replace into table TABLE_NAME;
区切り文字の指定はfields terminatedで、文字列の囲み記号の指定はoptionally enclosedで、改行コードの指定はlines terminatedで行う。
load data local infile "FILE.csv" replace into table TABLE_NAME fields terminated by ',' optionally enclosed by '\'' lines terminated by '\r\n'  
load dataでwarningが出た場合には以下コマンドで確認出来る。
show warnings;