| 正規化と非正規化の応答速度実証実験 |
「正規化するとレスポンスが悪くなる。」という誤った認識から抜け出せずにいませんか?
正規化したRDBにちょっとした工夫を施すだけで、JOINによるパフォーマンスの劣化が起こる心配はありません。むしろ、すばらしいパフォーマンスを見せてくれます。
DOA+コンソーシアムでは、数々の無償セミナーを通じて正規化によるパフォーマンス劣化の誤解を糾してきました。しかし、百聞は一見にしかず。今回、実証実験を通じて我々の主張が正しいことを世に問い直そうと思い立ち、「正規化vs非正規化」の論拠を示すことにしました。
|
【実験結果】
5000万件の正規化されたデータを非正規化により500万件にしてもほとんどパフォーマンスの向上は得られず、逆に、Joinする場合は非常に遅くなることがわかった。
■正規化されたDBは高速に動作する。
Index を適切に利用することで正規化されたDBは非正規化されたDBよりも高速に動作する。
■非正規化されたDBはJOINすると非常に遅くなる。
非正規形のDBを使っている技術者はJOINが遅くなることを体験しており、「正規化するともっと遅くなる」と誤解している。 |
| 実験 |
処理 |
正規形 |
非正規形 |
実験1 |
未手配検索 |
2ms |
2ms |
実験2 |
1件表示 |
3ms |
2ms |
実験3 |
発注数量
集計 |
91ms |
14020ms
(*1) |
(*1) 実験3の結果は 7,010ms であるが、全項目を取得する為には2回SQLを発行する必要がある為、2倍している。
|
|
−>詳しい内容はこちら。
−>実証実験に使用したテーブルレイアウト
上記資料をこちらからダウンロードできます
【資料ダウンロード】
|
【実証実験にご協力いただいた方々】
|
|
|