12 のインターフェイス最適化のアイデア

1. バッチ処理とバッチ思考

バッチ操作データベース、これは理解しやすいです。ループ挿入シナリオのインターフェースでバッチ実行が完了した後、一度にデータベースを挿入または更新でき、複数の IO を回避できます。

2. 非同期処理非同期思考

時間がかかり、結果に必要のないロジックについては、インターフェイス時間を短縮できる非同期実行を検討できます。

3. 時間と空間を交換するという考え

時間を交換するスペースのよく理解された例は、キャッシュの合理的な使用です. 頻繁に使用され、頻繁に変更されない一部のデータについては、事前にキャッシュすることができ、頻繁なデータベースクエリや頻繁なデータベースクエリを避けるために、必要なときにキャッシュを直接チェックすることができます.計算の繰り返し。

4. 前処理はアイデアの先取り

クエリデータを事前に計算し、それをキャッシュまたはテーブル内の特定のフィールドに入れることで、使用するとインターフェイスのパフォーマンスが大幅に向上します。上記の例と似ていますが、焦点が異なります。

5. プーリング思考

私たちは皆、データベース接続プール、スレッドプールなどを使用してきました. これはプールのアイデアの具現化です. それらが解決する問題は、オブジェクトまたは接続の繰り返し作成を避けることです. これらは再利用でき、不必要な損失を避けることができます. 結局, 作成と破壊にも時間がかかります。

6. シリアルからパラレルへのシリアル思考

現在の実行ロジックは、実行前に前の実行ロジックが実行されるのを待つ必要があります. 並列とは、2 つの実行ロジックが互いに干渉しないことを意味するため、並列処理は比較的時間を節約します.結果パラメーターに依存しません。

7.索引

インデックスを追加することでデータクエリの効率が大幅に向上するため、インターフェース設計でも考慮されますが、インデックスが失敗するシーンには注意が必要です。

8. いわゆる大企業の問題を​​回避する

実行時間の長いトランザクションです. トランザクションは一貫してコミットされないため, データベース接続が占有され, データベースへの他のアクセス要求や他のインターフェースのパフォーマンスに影響を与えます.

9. プログラム構造の最適化 プログラム構造の問題

通常、要件を複数回繰り返した後に発生し、コードが重ねられます。クエリの繰り返しやオブジェクトの複数の作成など、時間のかかる問題が発生します。複数の人がプロジェクトを維持する場合、より一般的です。解決するのも比較的簡単で、インターフェイス全体をリファクタリングし、各コード ブロックの機能と目的を評価し、実行順序を調整する必要があります。

10. 深いページネーションの問題
11.SQL の最適化

SQL の最適化により、インターフェイスのクエリ パフォーマンスが大幅に向上します。

12.ロックの粒度

一般に、大まかなロックを回避することは、同時実行性の高いシナリオで共有リソースを保護する手段ですが、ロックの粒度が粗すぎると、インターフェースのパフォーマンスに大きな影響を与えます。ロックの粒度について: ロックの範囲がどれだけ大きいかを意味し、それが同期ロックであろうと Redis 分散ロックであろうと、重要なリソースをロックするだけでよく、共有リソースを含まない場合はロックする必要はありません。トイレに行きたいのと同じように、トイレのドアをロックするだけでよく、リビングルームのドアをロックする必要はありません。

おすすめ

転載: blog.csdn.net/weixin_43431218/article/details/130030235