2

頻繁に更新 (挿入/削除) されるテーブルがあります。テーブルに保存されているレコードの数を定期的にカウントするスクリプトもあります。どうすればパフォーマンスを最適化できますか?

  1. 何もしない: COUNT 関数を使用するだけです。
  2. レコード数を格納する別のフィールドを作成します。新しいレコードが追加されるたびに、そのフィールドを増やします。その逆も同様です。
4

3 に答える 3

3

データベースの主な機能が格納 (頻繁な挿入/更新) である場合は、ストレージ エンジンを に切り替えます。これはクエリとInnoDB高速ですが、読み取りは低速です。INSERTUPDATE

詳細はこちらこちら、またはこちらをご覧ください。

于 2012-07-21T17:17:26.280 に答える
0

方法 2 は、ほぼ標準的な方法です (テーブルが非常に大きく、COUNTパフォーマンスの問題が発生している場合)。取得を非常に高速にするテーブルにCOUNT値を格納することもできます。MEMORY

必要に応じて増減します。

于 2012-07-21T17:19:35.420 に答える
0

正確な数値が必要な場合は、これをアプリに組み込んでデータベースを更新するか、トリガーを使用してカウントを最新の状態に保ちます。他の人が述べたように、パフォーマンスと永続性が必要な場合は、カウントを MEMORY テーブルまたは Redis インスタンスに保持できます。INFORMATION_SCHEMA.TABLES テーブルにはカウントがありますが、InnoDB では正確ではありません (+-20% 以上)。

于 2012-07-21T17:46:47.357 に答える