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へ入る方の参考になれば幸いです。