多数の 10 進数値を含むデータベースを作成し、それらをすべて varchar(11) として保存したため、「オーダーバイ」の問題があり、「キャスト」の問題を一時的に修正しました。varchar(11) の代わりに decimal(3,8) を使用する必要があります => その変更を行った場合、サーバーが高速になりますか、それとも違いはありませんか?
また、php 側では、varchar 値を使用して多くの計算が行われています。
MySQL では、数値を同じような形式にしたり、繰り返しキャストすることなく数学関数や並べ替えを容易にしINT
たりすることを好みます。DECIMAL
カラム タイプを切り替えて、MySQL にすべての値を再キャストさせるのはおそらく良い考えです。本番データに適用する前に、必ずこれをテストしてください。
PHP は文字列と数値の違いをあまり気にしません。必要に応じてキャストします。
decimal
の代わりに使用することを好みますvarchar
。それはより速くなります!
計算目的で値を使用している場合は、小数を使用することをお勧めします。これは、文字列が「+」ため息で追加されると、小数が追加される場合とは異なる効果があるためです。したがって、小数を使用することをお勧めします