Oracleから学習し始めるとMySQLを始めた際に、呼び方や機能、コマンドの違いを理解するのが大変だったので、比較した結果を一覧にまとめてみました。
呼び方の比較
| 一般的な呼び方 | Oracleの呼び方 | MySQLの呼び方 |
| エラーログ | アラートログ | エラーログ |
| 更新情報ログ | REDOログ | トランザクションログ (≒バイナリログ) |
| 更新情報アーカイブログ | アーカイブログ | バイナリログ |
| 監査ログ | AUDITログ | ジェネラルログ |
| 共有メモリ | SGA | innodb_buffer_pool_size |
| クラスタ構成 | RAC(Real Application Clusters) | MySQL Cluster |
機能の比較
| 機能 | Oracle コマンド | MySQL コマンド |
| DB起動 | srvctl start database -d <DB名> (もしくはSQL*Plus上でstartup) |
systemctl start mysqld |
| DB停止 | srvctl stop database -d <DB名> (もしくはSQL*Plus上でshutdown) |
systemctl stop mysqld |
| エクスポート | expdp | mysqldump |
| インポート | impdb | mysql < <ダンプファイル> |
| 物理バックアップ | rman | mysqlbackup (Enterpriseのみ) xtrabackup (Percona無償) |
SQL*Plusとmysqlコマンドの比較
| コマンド | Oracle(SQL*Plus) | MySQL(mysqlコマンド) |
| 接続 | sqlplus <ユーザー名>@<ネットサービス名> (ネットサービス名はtnsnames.oraに記述) |
mysql -h <ホスト名> -u <ユーザー名> -p |
| バージョン確認 | select * from v$version; | select version(); |
| ユーザ一覧 | select username from dba_users; | select user,host from mysql.user; |
| テーブル一覧 | select table_name from user_tables; | show tables; |
| テーブル定義確認 | desc <テーブル名>; | desc <テーブル名>; |
| インデックス一覧 | select table_name, index_name, column_name, column_position from user_ind_columns where table_name = ‘<テーブル名> order by 1,2,4; |
show index from <テーブル名>; |
| セッション確認 | select username,machine,program from v$session; |
show processlist; |
| パラメータ確認 | show parameter <パラメータ名> | show variables like ‘<パラメータ名>’; |
| SQLファイル実行 | @<SQLファイル> | source <SQLファイル> |
| SQL結果ログ保存開始 | spool <出力ファイル名> | \T <出力ファイル名> |
| SQL結果ログ保存終了 | spool off | \t |
| 実行計画取得 | explain plan for <SQL文>; select plan_table_output from table(DBMS_XPLAN.DISPLAY); |
explain <SQL文>; |
| SQL実行時間 | set timing on; | デフォルトで表示される |
OracleからMySQLに入る方、MySQLからOracleへ入る方の参考になれば幸いです。

