【2021/06/01】今日の学習

dumpファイル 拡張子「.dmp」

ここでは、バックアップやシステム移転のために、ある瞬間のデータベースの内容をまるごと複製したファイルのこと。

データが失われた際に、ダンプファイルからデータベースを復元することができる。
機材の更新のときとかも、古いシステムで取ったダンプファイルを新しいシステムでリストアすることで、円滑にデータベースを移転することができる。
リストアとはバックアップの対義語で、リカバリー(復元、復旧)的な意味合い

MySQLでダンプファイルを作成する

MySQLのdumpには「 mysqldump 」を使う。
一般的にMySQLサーバにログインするとき、コマンドで

mysql -u root -p

とするが、
mysqldumpはMySQLにログインして動かすツールではない

mysqldump -u ユーザー名 -p データベース名 > 出力ファイル名

ちなみに、作成されたdumpファイルは、元のデータベースにあったテーブルを作り直すためのコマンド(SQL文)が記載してあるファイルである。

データベースから特定のカラムを持つテーブルを検索する

データベースにはたくさんテーブルがある。
それらすべてのテーブルから特定のカラムを持ったテーブルだけ取り出したい。

mysql> SELECT table_name, column_name
  FROM information_schema.columns
  WHERE column_name = " 検索したいカラム名 ";
  AND table_schema = " 検索対象のデータベース名 ";

関係ないけど用語の意味調べついでに出てきたストアドプロシージャについてメモがてら

ストアドプロシージャとは、データベース上での一連の処理のまとまりのことで、関数みたいなもの。
一連の手続きをコンパイルして一つにまとめ、データベースサーバに保存したオブジェクトで、呼び出して使える。
条件分岐や繰り返し処理も可能になる。

ストアドプロシージャのメリット
パフォーマンス

埋め込みSQLの場合は、「データの検索」と「データの更新」を行うには、計二回のデータベースサーバとの通信を行う必要がある。
対してストアドプロシージャは、検索、判定、更新をひとまとめにしているため、データベースサーバとの通信が一回ですむ。

保守性

ストアドプロシージャは、データベースに対する処理をアプリケーションから隔離できるため、ビジネスロジックへの変更対応がしやすく、アプリケーションの保守性が向上する。

セキュリティ

ユーザーぼデータベースアクセスをストアドプロシージャのみに限定することで、不用意なデータ操作を防ぐ。