インターネットには、真実のように見える「噂」がたくさんあります。もちろん、悪意のあるものではありません。そのほとんどは、開発者が自ら率先して調査することを望まず、代わりに他の人の言うことを信じているためです。 データベースに関しては、「int のパフォーマンスは char よりもはるかに高い」といった噂も数多くあります。 最近、int、long、char、varchar のパフォーマンス テストを実施しましたが、実際にはそれらのパフォーマンスに大きな違いはないことがわかりました。 注: c8=char(8)、s8=varchar(8)、i8=(bigint)、c4=char(4)、s4=varchar(4)、i4=char(4) インデックスなしで 100 万行をクエリします。
インデックスを作成します。
インデックス付きクエリ:
結論は: インデックスなし: データが小さくなるため、テーブル全体のスキャンは高速化されませんが、全体的な速度は同じで、ネイティブ型としての int/bigint はわずかに 12% 高速になります。 インデックス付き: char と varchar のパフォーマンスは同等ですが、int はわずかに 18% 高速です。 データの保存、読み取り、書き込みに関しては、整数は同じ長さの文字列と同じですが、varchar には余分なバイトがあるため、パフォーマンスがわずかに影響を受ける可能性があります (1/n)。 データ操作と比較に関しては、整数はネイティブ サポートの恩恵を受けるため、文字列よりもわずかに高速になります。 インデックスを使用すると、整数と文字列のパフォーマンスの違いはさらに小さくなります。 実際の開発では、多くの開発者がchar(1)やchar(4)などの文字列を使用して型列挙を表すことがよくあります。私の意見では、このアプローチは、ストレージスペース、コンピューティングパフォーマンス、可読性、保守性、スケーラビリティの点でintやenumなどのデータ型よりもはるかに優れているため、最適なソリューションです。 以下もご興味があるかもしれません:
|
<<: Linux のバックグラウンドで & と nohup を使用する方法
目次導入建築ESXIの利点vSphere とは何ですか? 2. 仮想マシンの利点3. 仮想マシンを使...
1. システム内で開いているファイルの最大数を確認する #現在のリソース制限設定を表示する ulim...
まず、図をダウンロードしてください 1. まず、centos7に付属しているmariadbをアンイン...
純粋な CSS で固定ヘッダーを実装するのが難しい主な理由は 2 つあります。まず、最大のシェアを持...
イメージの構築は、DevOps プロセスにおいて非常に重要なプロセスです。一般的に、イメージの構築と...
目次序文型推論真理値の絞り込み平等の縮小演算子の絞り込みインスタンスの絞り込み狭まりの本質ユニオン型...
目次1. 怠惰な2.トリム3.番号4.停止5. キャプチャ6.自分7.一度8.予防する9.ネイティブ...
この記事の警告事項は、ブラウザの互換性とはまったく関係ありません。主に、プロジェクトで遭遇したいくつ...
序文最近、仕事の都合で、APP ショッピングカートの注文支払いに取り組んでいました。テスト中にバグが...
Nginx の公式 Web サイトから Windows バージョンの Nginx をダウンロードしま...
1. cmakeをインストールする1. cmakeの圧縮パッケージを解凍する [root@mysql...
目次背景問題分析1. 属性値はJson形式であり、Json操作関数を使用して処理する必要があります。...
許可が拒否されました:その理由は、ファイルの読み取り、書き込み、作成、削除などの権限がないためです。...
目次1. コンセプト2. 環境の説明3. マスタースレーブホットスタンバイ実装1. コンセプト1. ...
とあるサイトからレンタルした仮想マシンの有効期限が近づいており、更新料が200元以上かかります。Al...