DB と API の境界
データのチェック
APIでチェックして、不正な場合はDBにSQLを投げない
DBへのSQL発行はできるだけ最小限にしておく
SQLで全て行うかAPIで処理するか
サービスが大きくなるとDBがボトルネックとなり、障害の原因になることが多く、APIに余裕があることが多い
そのため、SQLはできるだけ巨大にせず、シンプルにして、API側で処理を行うのがよい
API側に返すデータ量がある程度絞り込まれさえすれば、API側で複雑な分類・整形処理等を行う
データを絞り込むためのSQLが巨大な一時テーブルや複雑なSQLを使う場合は簡単な絞り込みだけをSQLで行う
巨大な一時テーブルの作成を頻繁に行うと徐々にパフォーマンスが下がることがあり、再起動が必要になることがある
データ取得後の整形はAPIのフラグパラメーターとするのがよい
SQLがシンプルでDB側で集計をしないとAPI側に返すレコード数が膨大になる場合はSQLで行う
個人情報
DBのデータを全世界の公開しても問題ないか
APIで暗号化してDBに入れる
APIで復号化して返す