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で復号化して返す