0

可能なすべての ISBNS をテーブルに格納しています。これらの isbn は常に 13 桁の長さで、常に数字です。各 ISBN は「978」または「979」で始まります。純粋にパフォーマンスの観点から、列を BIGINT (13) または CHAR (13) にする方が良いでしょうか? またその理由は? このデータをより効率的に保存する別の方法はありますか?

4

3 に答える 3

3

私が取り組んでいる同様のプロジェクトの一環として、1M 行テーブルでテストを行っていました。

BIGINT -  0.0003 sec
Varchar(13)- 1.3996 sec
CHAR(13) - 1.2910 sec

間違いなく私はBIGINTで行くつもりです

于 2013-12-13T01:05:32.283 に答える
2

まず、BIGINT(13)13 の意味は内部ストレージ スペースではありません。BIGINT(n)常に 8 バイトを占有します。そして、CHAR(13)13バイトかかります。したがって、BIGINT の方が高速です。

小さいサイズが重要な場合、私は ISBN の専門家ではありませんが、ISBN が「978」または「979」で始まる場合、残りの部分は 10 桁ですか? 次に、2つの列を作成できます。

isbn_prefixCHAR(1)、remain_partINT。isbn_prefix'978' の場合は '8'、979 の場合は '9' をremain_part格納し、10 桁を格納します。BIGINT4 バイトしか必要としません。だから、未満BIGINT

でも、シンプルイズベスト。私BIGINTがあなただったら使うよ。

于 2013-11-12T02:41:37.040 に答える