Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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の見方は漢のコンピュータ道を読むのが一番理解しやすいと思う。

tamano
勉強会のメモや、試行錯誤した履歴を実験ノート的に書きます。 というつもりだったんですが、実際は会社で若手の子に教える内容のメモになっていたり。
https://github.com/tamano/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした