上下にスクロールするかキーボードの上下キーを使うと、次の学習カードへ進めます。

イントロ

データベース性能とキャッシュ

DBを大きくする前に、読み方を分ける

データベース性能は、保存先の種類だけでなく、読む量や繰り返しアクセスで変わります。読み取り分散やキャッシュを設計候補に入れます。

定義

キャッシュ

教科書では
よく使うデータを高速に取り出せる場所へ一時的に置き、元のデータベースへの負荷を下げる考え方。
言いかえると
リードレプリカは読み取りを分散し、ElastiCacheはよく読む一時データを高速化します。DynamoDBはキー中心のアクセスに向くNoSQLです。
比較
対策効く場面代表
読み取り分散参照が多いリードレプリカ
NoSQLキーで読むDynamoDB
キャッシュ同じデータを再利用ElastiCache

対策読み取り分散

効く場面
参照が多い
代表
リードレプリカ

対策NoSQL

効く場面
キーで読む
代表
DynamoDB

対策キャッシュ

効く場面
同じデータを再利用
代表
ElastiCache

DB性能の改善策は、遅い理由で変わります。

要点

判断の合図

問題文では、読み取りが多いのか、キーで高速に読むのか、同じデータを何度も読むのかを見る。

  1. 1

    読み取り負荷を分ける

  2. 2

    キー中心ならNoSQLを検討

  3. 3

    繰り返し読むならキャッシュ

図解データベース性能とキャッシュの設計判断を短いラベルで整理した図
アプリの読み取り先をキャッシュやリードレプリカへ分ける図です。DB本体だけを大きくする前に読み方を見ます。
場面
商品一覧ページの参照が多く、DBが重い。
順に考えると
頻繁に読む商品情報はキャッシュ候補です。RDSの読み取りが多いならリードレプリカで参照を分ける選択もあります。
ここが結論
読み取りの多さとデータの変化頻度で候補を選びます。
注意

キャッシュは元データではない

確認

確認テスト

Q1

同じ商品情報を何度も高速に読みたい場合の候補はどれですか。

まとめ

まとめ

  1. 1

    リードレプリカは読み取り分散

  2. 2

    DynamoDBはキー中心

  3. 3

    キャッシュは繰り返し読みを高速化

  4. 4

    古い値の扱いも考える