概要
なぜ遅いのかを突き止め、症状ではなく原因を直します。多くの場合、必要なのは大きなサーバーではなく、インデックス、書き直したクエリ、あるいは実際の使われ方と衝突しなくなったデータモデルです。
データベース最適化
最高のパフォーマンスを実現するための高度な開発と最適化。
MySQLPostgreSQLRedisElasticsearch
主なメリット
01
前後を必ず計測する
すべての施策に、実データでの適用前と適用後の数値が付きます。都合のよいテストデータではありません。
02
ハードウェアを増やさずに速くする
いちばん安いサーバーは買わずに済むサーバーです。まずクエリとモデルから見ます。
03
直した状態が維持される
性能チェックをパイプラインに組み込み、劣化が本番ではなくコミット時点で見えるようにします。
ユースケース
アプリを止めてしまうレポート
本番データベースに対して直接実行される重い分析クエリ。
モデルを超えた成長
十万行では動いていたが、数千万行では動かなくなったテーブル。
増え続けるクラウド請求
トラフィックより速く増えていくインフラ費用。
進め方
01
現状把握
提案の前に、既存システムと制約、そして事業目標を整理します。
02
アーキテクチャ設計
構成・データモデル・連携点を設計します。決定は文書化し、場当たりにしません。
03
実装
短いイテレーションで納品。コードレビュー済みで、ステージング環境はいつでも確認できます。
04
テスト・QA
リリースごとに自動テストと性能・セキュリティ検証を実施します。
05
公開と運用
ロールバック計画とともに公開し、その後も監視と改善を継続します。
現状把握公開と運用
技術スタック
MySQLPostgreSQLRedisElasticsearchClickHousepgBouncerMySQLPostgreSQLRedisElasticsearchClickHousepgBouncerMySQLPostgreSQLRedisElasticsearchClickHousepgBouncerMySQLPostgreSQLRedisElasticsearchClickHousepgBouncer
ElasticsearchClickHousepgBouncerMySQLPostgreSQLRedisElasticsearchClickHousepgBouncerMySQLPostgreSQLRedisElasticsearchClickHousepgBouncerMySQLPostgreSQLRedisElasticsearchClickHousepgBouncerMySQLPostgreSQLRedis