インターネットには、真実のように見える「噂」がたくさんあります。もちろん、悪意のあるものではありません。そのほとんどは、開発者が自ら率先して調査することを望まず、代わりに他の人の言うことを信じているためです。 データベースに関しては、「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 を使用する方法
製品デザインのプロセスにおいて、デザイナーは常に写真を非常に美しくすることを好みます。仮想ページのコ...
序文私は Win7 を搭載した古いラップトップを持っています。古いシステムを維持しながら、同時に U...
MySQL 5.7.9 のインストールチュートリアルを録画してみんなと共有しましょう環境の紹介:オペ...
1. メニューバーで「編集」→「仮想ネットワーク エディター」を選択して仮想ネットワーク エディタ...
この記事では、参考までにMySQL 5.7.18 MSIインストールチュートリアルを紹介します。具体...
この記事では、例を使用して、MySQL 外部キーの基本的な機能と使用方法を説明します。ご参考までに、...
目次1. はじめに2. 本文2.1 モジュールとは何ですか? 2.2 解決2.3、require.r...
序文最近、多くの新しい同僚がこの質問をしてきました。特に、homebrew を通じて自動的にインスト...
コンポーネントに背景画像コントロールを追加するには、次の 2 つの手順だけが必要です。 <表示...
最初にサーバー上に FTP サーバーをセットアップし始めたとき、接続できないことがわかったので、Fi...
カルーセルはフロントエンド開発において比較的重要なポイントだと思います。ネイティブjsの知識ポイント...
1. Dockerに適したRedisのバージョンを見つけるdocker hubで見つけることができ...
目次1. Set()+Array.from() を使用する2. 2層ループ+アレイ接合方式の使用3....
方法1: テーブル属性を使用する: header-cell-class-name テーブルインターフ...
この記事では、Dockerでイメージ情報を表示する方法を学ぶ必要があります。 1. imagesコマ...