保存先を選ぶ
全部を同じ所に入れない
保存先には向き不向きがあります。この章では3つだけ覚えます。
関係データベースは、取り消しできる書き込みが要るものに使います。予約がこれです。
キーバリューは、鍵1つで引くだけのものに使います。セッションがこれです。
オブジェクトストレージは、1件が大きいものに使います。座席図の画像がこれです。
動きはします。ただし画像を入れると、1行が巨大になって読み取りが全部遅くなります。
セッションを入れると、書き込みが1秒ごとに走って予約の書き込みとぶつかります。楽なのは最初だけです。
選ぶ順番が決まっている
3つのうちどれかを選ぶとき、先に見るのはトランザクションが要るかどうかです。
Python
# 取り消しできる書き込みが要る → 関係データベース
# 1件が大きい → オブジェクトストレージ
# それ以外 → キーバリュー関係データベースです。大きさは工夫できますが、取り消しは工夫では作れません。
大きい中身だけをオブジェクトストレージへ出し、その場所を指す文字列だけを関係データベースへ入れます。譲れないほうを先に決めます。
演習
データの性質を受け取り、3つのうちどれに置くかと、その理由を返します。
要件
- needs_transaction が True なら storage は "sql"、reason は "取り消しできる書き込みが要る"
- そうでなく size_bytes が 1048576 以上なら storage は "object-storage"、reason は "1件が大きい"
- どちらでもなければ storage は "key-value"、reason は "鍵で引くだけ"
ヒント
編集 ゆめさく編集部