1

カットオフポイントは、データベースにデータを保持するフィールドを作成すること、またはコードでデータを自分で生成することです。たとえば、データベースの2つの異なる列から生成される特定の値を知る必要があります。Column1-Column2=Column3。したがって、ここで質問があります。コードでそのデータを生成する方がよいのでしょうか。それとも、Column3を作成し、DBにデータを入力するときにそこにデータを配置して、後で取得する必要があるのでしょうか。私の場合、データは2桁の整数または1文字の文字列であり、基本的には小さなデータです。

私は最新のmysqlを使用しています。プログラミング言語はmysqliライブラリを使用したphpです。また、このWebサイトはトラフィックが多すぎないようにする必要があり、データベースのサイズは最大で200k行になります。

4

2 に答える 2

2

このタイプの属性 (列) は派生属性と呼ばれます。冗長性が増すため、それらをデータベースに配置しないでください。を入れcolumn1column2フェッチしながら計算するだけです。たとえば、このように、

`Column1` - `Column2` as `Column3`

派生属性が追加されたビューを作成するたびに、そのようにクエリを実行する必要がない場合。

計算が CPU を集中的に使用する場合は、キャッシュの使用を検討する必要があることに注意してください。次に、このキャッシュを無効にする方法とタイミングを実装する必要があります。

于 2012-11-23T22:19:26.670 に答える
0

それは、計算がどの程度リソースを消費するか、およびどのくらいの頻度で実行されるかによって異なります。あなたの場合、それは非常に単純なので、違いを別の列に保存するのはやり過ぎです。次のように SQL クエリで計算を行うことができます。

SELECT col1, col2, col1-col2 AS col3...

于 2012-11-23T22:19:52.107 に答える