を使用してinnodbのカウント(*)パフォーマンスを最適化する場合は、大規模だが狭いInnoDBテーブルを扱う場合、カウント(*)クエリの実行が遅い場合があります。これは、約900万のレコードで構成されるテーブルが6秒のカウント(*)操作をもたらしたシナリオで発生しました。MySQLドキュメントによると、INNODBに操作のカウントにインデックスを使用することを強制することができます。利益。これは、クエリで使用インデックス(index_name)構文を使用することによって達成されます。 index(プライマリ);
ただし、インデックスを使用しているにもかかわらず、パフォーマンスは依然として不均一でした。さらにトラブルシューティングオプションを求めて、MySQL 5.1.6がイベントスケジューラと統計的キャッシングを含む効率的なソリューションを導入したことが発見されました。統計テーブル、カウント(*)操作は大幅に最適化できます。このプロセスでは、カウントデータを保存する統計テーブルの作成を伴います。 &&&&]
その後、現在のカウントで統計テーブルを定期的に更新するためのイベントが作成されます:
SELECT COUNT(id) FROM perf2 USE INDEX (PRIMARY);
この自己完結型ソリューションにより、カスタマイズ可能な更新間隔が可能になり、保存されたカウントの精度と新鮮さが確保されます。完璧ではないかもしれませんが、従来の方法と比較してかなりのパフォーマンスの向上を提供します。 免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3