0

「正」および「負」の値または「値なし」を保持する必要があるテーブルに列があります。何百万もの行を合計する必要があります。ユーザーに表示します。私の質問は次のとおりです。どちらの合計操作が速くなりますか。

  1. 「値なし」を 0、「正」を 1、「負」を -1 とマークすると、
  2. 「値なし」を 0、「正」を 1、「負」を 2 にすると、

私の好みのオプションは 1. です。追加の php 処理の労力を節約し、正しい結果をすぐに表示できるからです。問題は、db で記号 (-1,0,+1) を使用すると天気が遅くなるか、記号 (0,1,2) を使用しない場合と同じになります。何百万もの行があり、定期的に合計されることに注意してください。ありがとうございました。

4

1 に答える 1

1

1) 直接的な結果が得られるからです!

いいえ、列の型が signed int または real として定義されている限り、符号はパフォーマンスに影響しません...

あなたの質問はデータ型に関するものでなければなりません.intが優先され、floatはあまり好ましくなく、文字列はあまり好まれませんが、mysqlは文字列を合計できますが、変換は遅くなります.

また、このテーブルが他の 2 つのテーブルと上下投票の間の相互参照を保持していると仮定すると、0 の値をすべて削除し、投票が行われたときにのみ行を挿入すると、非常に高速になります。また、値をキャッシュし、トリガーを使用して、投票がキャスト/アンキャストされるたびにキャッシュ列参照テーブルを更新すると、さらに高速化できます。

投票合計を自動的に更新するフィドルの例http://sqlfiddle.com/#!2/044c3/1

于 2012-10-08T21:37:18.057 に答える