MySQL における tinyint と int の違いの詳細な説明

MySQL における tinyint と int の違いの詳細な説明

質問: int(1) と tinyint(1) の違いは何ですか?

このような設計では、いずれにしても int(1) を書くことはありません。

確認したところ、MySQLでストレージタイプを設定すると、ストレージは固定長、つまりint(1) 和int(4) 在硬盤中所占的字節數都是一樣的がわかりました。

int 型は 4 バイトを占め、tinyint 型は 1 バイトを占めることが分かっています。 int(1) と int(4) は、長さと保存方法の点では同じです。唯一の違いは表示される長さです。ただし、パラメータを設定する必要があります。列制定了zerofill 就會用0填充顯示。この場合、int(4) は 0002 として表示されます。

int(1)和tinyint(4) 相比,肯定int 大

数値型の後の括弧内の数字は長さではなく表示幅を示しており、varchar や char の後の数字の意味とは異なることに注意してください。

つまり不管int 后面的數字是多少,它存儲的范圍始終是-2^31 到2^31 - 1

要約すると、整数データ型の括弧内にいくつの数字があっても、占有されるストレージスペースは同じです。

tinyint 1バイト smallint 2バイト MEDIUMINT 3バイト

明らかに、データベースを設計する際にはint(1) 和tinyint(1)選擇tinyint(1)占的儲存空間越少越好,當然要夠用才行。このような1桁のフィールドを保存するには、tinyint(1)を使用する方が適切です。

要約:

  • 1. 型を指定した後は固定長で保存されます。int(1)とint(4)は長さと保存方法が同じです。 MySQLでは、int(1)とint(4)の差は表示される長さですが、パラメータを設定する必要があります。列にzerofillが指定されている場合は、0で埋められます。たとえば、2 int(3)が指定されている場合は、002と表示されます。
  • 2.int は保存に 4 バイト、tinyint は保存に 1 バイトを占有し、保存長によって、表す数値の範囲が決まります。 int によって表される数値の範囲は、-2^31 (-2,147,483,648) から 2^31 – 1 (2,147,483,647) までの整数データ (すべての数値) です。 tinyint は 0 から 255 までの数値を表します。
  • 3. Tinyint(1) は tinyint(3) と違いはありません。123 を格納できます。ただし、tinyint(3) がゼロフィルされている場合、値 12 が挿入されると、012 が格納されます。ゼロフィルは自動的に左側にゼロを埋め込むため、表示長が制限されます。

上記の要約は少し乱雑です。以下に簡単な要約を示します。

tinyint(1) と tinyint(3) の間に違いはありません。どちらも 1 バイトを占有し、同じストレージ範囲を持ちます。

tinyint(3) zerofill 、挿入されたデータが3桁未満の場合は、表示長を制限するために左邊自動補零

Int(1)とtinyint(1)で十分な場合は、占字節少、節省空間ため優先選擇tinyint(1)

tinyint 1 バイト、smallint 2 バイト、MEDIUMINT 3 バイト、int 4 バイト、BIGINT 8 バイト。

ただし、varchar(5) の 5 は、値に関係なく (中国語、英語、数字などに関係なく)、保存できる文字数を制限します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL の int、bigint、smallint、tinyint の違いについて詳しく紹介します。
  • mysqlのTINYINTの値の範囲
  • MySQLの整数データ型tinyintの詳細な説明
  • MySQLにおけるTinyint(1)とTinyint(4)の違いの詳細な分析

<<:  Rancher のデプロイメントと K8S クラスターのインポートに関する問題

>>:  TypeScriptの基本型の詳細な説明

推薦する

セマンティック HTML 構造の利点は何ですか?

1つ: 1.セマンティック タグは単なる HTML であり、CSS にはセマンティクスはありません...

MySQLデータ損失の原因と解決策

目次序文問題の説明原因分析拡大する総括する序文最近、データの欠落やデータの損失に関するフィードバック...

Web ページでパラメータ名によって ActiveX コントロールのプロパティに値を割り当てる例

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

CSS でレスポンシブ レイアウトを実装する方法

CSS でレスポンシブ レイアウトを実装するレスポンシブレイアウトは非常にハイエンドで難しいように思...

MySQL での重複キー更新時の replace into と insert into の使用法と相違点の分析

この記事では、MySQL での重複キー更新時の replace into と insert into...

Raspberry Pi 3B+ に 64 ビット Ubuntu システムと Docker ツールをインストールする詳細な手順

Raspberry Pi 3B に 64 ビット アプリケーション (64 ビット JDK など) ...

CSSは5つの一般的な2D変換を実装します

CSS の 2D 変換を使用すると、移動、回転、拡大縮小、変形などの基本的な変換操作を 2 次元空間...

nginxとlvsのメリットとデメリット、そして適切な使用環境

まず最初に、ロード バランシングとは何かについて説明します。ロード バランシングとは、リクエストの内...

Webpack で環境変数を使用するためのさまざまな正しい姿勢

目次前に書いてビジネスコードは環境変数を使用するwebpack.DefinePlugin プラグイン...

kindとDockerを使用してローカルKubernetes環境を起動する

導入Kubernetes を使い始めるのに丸一日を費やしたことはありませんか?最近登場したいくつかの...

Linux スクリプトの基礎を詳しく紹介

目次1. スクリプトvim環境2. シェルスクリプトで環境を定義する方法3. シェルスクリプト内の翻...

Ubuntu 18.04 LTSでIPアドレスを設定するための完全な手順

序文Ubuntu 18.04 LTS で IP アドレスを設定する方法は、これまで使用されていた設定...

CSS の position 属性の値に関する研究 (概要)

CSS の位​​置属性は要素の配置タイプを指定し、上、下、左、右を使用して要素を具体的に配置します...

特殊効果メッセージボックスを実現するネイティブJS

この記事では、ネイティブ JS で実装された特殊効果メッセージ ボックスを紹介します。効果は次のとお...

MySQL InnoDB トランザクション ロック ソースコード分析

目次1. ロックとラッチ2. 繰り返し読み取り3. インサートロックプロセス3.1 ロックモード3....