データベース実践テクニックを磨く(脱初心者)

  • 2019.10.29
  • WEB
データベース実践テクニックを磨く(脱初心者)
Pocket

こんにちは。岡本です。

データベース入門を終えて実務をこなし、中級を目指している方へ向けた記事になります。
が、タイトルの本題に入る前にまず中級を目指す準備はできているでしょうか。
多くの人は正規化を覚えたり構文エラーがなくなると何となくこなせていると勘違いしがちです。

サーバー増強で速度を上げようとするとその効果は初期のDB設計や実装方法が大きく左右します。最悪根幹を正さねばほとんど改善しません。
下地がない状態では実践テクニックを取り入れても本質的な効果を発揮しません。
今回は実践テクニックの前に脱初心者が行えているか確認していただきたいと思います。

オプティマイザってなんだっけ

オプティマイザはデータベースのデータ取得処理アルゴリズムです。

データベースにより考え方・能力は異なる
指示(定義とSQL構文)が悪いとデータベースは迷う
よくわかってない方は一旦この理解だけで充分です。

簡単に言うと、あなたが指示者でデータベースは作業者です。自身が上司となって、作業者の能力を把握して適切な指示が出せているか?

日本語を話しているようだけど何を言ってるのかわからない上司っていますよね。
処理速度の低下は、データ量よりも指示の解釈による処理のされ方に原因があることがほとんどです。
つまり「指示が悪いと仕事は遅くなる」。〇〇の仕事おせーという前に、自分の指示能力を疑いましょう。

負荷試験をおこなう

自分の指示能力の確認をしましょう。

まずゴール(同時接続数/データ数/テーブル数/データ容量)を設定します。
1.初期データ量/増加量、初期利用者数/増加数、システム利用年数をヒアリングする
2.年間のデータ量を算出する
3.設計、実装する
4.将来的なMAXデータ量の1.5~3倍で性能試験を実施する

メインとして取り扱う情報(商品、求人、記事など)と、利用者数(会員、管理者)は最低限抑えます。
月の増加数から年間のデータ量を算出して耐用年数を乗算して将来的なMAXレコードが予想できます。
テーブル設計後にカラムサイズを合計すれば1レコード当たりの容量が見えますから、DBの容量も予想できます。

全て概算で充分です。

試験結果の改善をおこなう

正しい負荷試験さえおこなわれれば、強制的に将来起きる悪夢を再現できます。そして悪い箇所を改善しなければいけません。

1サイクル回すだけで
・原因を調べる手順(explainなど)を覚える
・インデックスの見直しがおこなわれる
・SQLのチューニングがおこなわれる
・TBL設計の見直しがおこなわれる
・DB構成の見直しがおこなわれる(上級なので一旦無視でOK)
調べて直しての結果、全てのスキルアップが行われます。
上記の一般的な対応方法は本を買わなくても今の時代はネット上に転がっています。都度調べましょう。

負荷試験をおこなうことで自分の設計・構文だと、どの程度の処理量からデータベースが音を上げるかわかります。脱初心者がまずやらなければいけないのは「現状を把握して、起こりうる事態を理解する」です。そのためには負荷試験が改善の工程が必須です。

保守を含めてシステムに最後まで付き合う人は意外と少ないです。となると負荷試験と改善対応を行わないとなかなか成長できません。品質担保、スキルアップ両方の意味でまずは絶対にやりましょう。

次回の記事で実践テクニックの本題に入ります。

Pocket

システム開発・サーバー管理のご相談なら12Gridへ

システムでお困りのことはございませんか?
プランニングから構築までの一括サポートまで、
お客さまのご要望にあわせて柔軟に請け負っています。

WEBカテゴリの最新記事