LoginSignup
324

More than 5 years have passed since last update.

PostgreSQLとMySQLで、僕がよく使うシステムコマンドのメモ

Last updated at Posted at 2014-06-17

DBの調査をする時に、PostgreSQLとMySQLのコマンドの違いによく戸惑うので、今覚えてるものだけでもメモ。

接続とDBの確認

DBに接続する

PostgreSQL
$ psql -U ユーザ名 DB名
  • パスワードの要否は自動的に判断されて、必要な時は入力が促される。
MySQL
$ mysql -u ユーザ名 -p ;
  • パスワードの要否は自動的に判断されず、必要な時に-pがないと接続エラーとなる。

DBの確認

PostgreSQL(bashから)
$ psql -U ユーザ名 -l
PostgreSQL(ログイン後)
\l
MySQL
SHOW DATABASES;

スキーマの確認 (PostgreSQLのみ)

PostgreSQL(ログイン後)
\dn

テーブル定義関係

テーブル一覧を確認する

PostgreSQL
\d
MySQL
SHOW TABLES;

テーブル定義を確認する

PostgreSQL
\d table_name
MySQL
DESC table_name;

テーブル定義の完全な情報を確認する

PostgreSQL
$ pg_dump database_name -Uuser_name -s -t table_name
MySQL
SHOW CREATE TABLE table_name;

プロセス関係

動いているプロセス状況を確認する

PostgreSQL
SELECT * FROM pg_stat_activity;
MySQL
SHOW processlist;
SHOW full processlist;  --実行されたSQLも確認。

実行中のプロセスを殺す

PostgreSQL
SELECT pg_cancel_backend(process_id);
MySQL
kill process_id;

その他

定義されたファンクション一覧を確認する

PostgreSQL
\df
MySQL
SHOW FUNCTION STATUS;

ファンクションの定義を確認する

PostgreSQL
SELECT prosrc FROM pg_proc WHERE proname = 'function_name';
MySQL
SHOW CREATE FUNCTION function_name;

SQLの実行計画を確認する

PostgreSQL
EXPLAIN ANALYZE sql;
MySQL
EXPLAIN sql;

余談だけど、MySQLのEXPLAINの見方は漢のコンピュータ道を読むのが一番理解しやすいと思う。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
324