第6章/全8章 ・ 目安 2分

守る・速くする

バックアップ・権限・索引

守る:バックアップと権限

バックアップは「戻せること」まで確かめる

データベースは、機械の故障や操作ミス、外部からの攻撃でデータを失うことがあります。そのため定期的に バックアップ(写し)を取ります。

大事なのは、取っていることではなく 実際に戻せること です。いざ戻そうとしたら写しが壊れていた、戻すのに丸1日かかった、という失敗はよくあります。年に何回か、別の環境に戻してみる練習(復元テスト)をしておきます。

権限は「必要な分だけ」

データベースでは、人やシステムごとに、できることを細かく決められます。

  • 見るだけ(SELECT だけできる)
  • 行の追加・書き換えができる
  • テーブルを作る・消すなど、形そのものを変えられる

分析をする人には「見るだけ」を渡し、給与や個人情報の列は見せない、というように 必要な分だけ 渡すのが基本です。これを 最小権限 と呼びます。間違えても壊せない状態にしておけば、第4章の WHERE の書き忘れも被害になりません。

本番と練習場を分ける

実際の業務で使うデータベースを 本番環境、試すためのものを 検証環境 と呼びます。新しい SQL や仕組みの変更は、まず検証環境で試してから本番に持っていきます。

速くする:インデックス(索引)

何百万行もある表から「請求番号 INV-102」を探すとき、1行目から順に見ていくと時間がかかります。そこで、本の巻末の索引のように「この値はこの辺りにある」という目次を別に作っておきます。これを インデックス と呼びます。

よく WHERE の条件に使う列や、JOIN でつなぐ列にインデックスを作ると、取り出しが大きく速くなります。ただし、行を追加・更新するたびに索引も直す必要があるので、何にでも作ればよいわけではありません。画面が急に遅くなったときは、まずインデックスの有無が確認されます。

この章のポイント
  • バックアップは、戻せることを確かめて初めて意味がある
  • 権限は必要な分だけ。本番と検証環境を分ける
  • インデックスは本の索引。取り出しは速くなるが、書き込みの手間は増える