MySQLにおける時刻日付型と文字列型の選択について

MySQLにおける時刻日付型と文字列型の選択について

1. DATETIMEとTIMESTAMPの使用

MySQL には、主に YEAR、TIME、DATE、DATETIME、TIMESTAMP など、時間と日付を表す多くのデータ型があります。

インタビュアーの質問: MySQL で時間日付型と文字列型の選択

1. 類似点

datetime と timestamp はどちらも、YYYY-MM-DDHH:MM:SS 年-月-日-時間-分-秒の形式でデータを表すことができます。

2. 相違点

日時ストレージはタイムゾーンとは関係ありません (具体的には、日時は 1 つのタイムゾーンのみをサポートし、これは保存時の現在のサーバーのタイムゾーンです)。一方、タイムスタンプ ストレージはタイムゾーンに関連しています。

datetime と timestamp の精度は秒です。datetime はタイムゾーンに依存せず、広いストレージ範囲 (1001 ~ 9999) を持ちます。timestamp はタイムゾーンに関連しており、狭いストレージ範囲 (1970 ~ 2038) を持ちます。

3. 選択

TIMESTAMP と DATETIME の間には、保存範囲と保存方法を除いて大きな違いはありません。もちろん、タイムゾーンをまたぐビジネスには TIMESTAMP の方が適しています。

2. varcharおよびtextデータ型の使用

MySQL に文字列を保存する場合、char、varchar、または text 型を使用できます。

1. 類似点

varchar と text はどちらも可変長文字列を格納でき、文字列の長さの上限は 65535 バイトです。

2. 相違点

varchar は高速で、スペースを無駄にせず、末尾のスペースを処理せず、上限は 65535 バイトですが、ストレージの長さは 65532 バイトです。長さが 255 バイト未満の場合、長さを格納するために 1 バイトが使用されます。長さが 255 バイトを超える場合、長さを格納するために 2 バイトが使用されます。テキストで、可変長データを格納し、速度が遅く、スペースを無駄にせず、末尾のスペースを処理せず、上限が 65535 バイトで、データ長を格納するために余分なスペースを使用するため、65535 バイトすべてを使用できます。

TEXT 列にインデックスを配置することはできません (フルテキスト インデックスを除く)。テキストの場合、プレフィックス インデックスのみを追加でき、プレフィックス インデックスの最大サイズは 1000 バイトです。

テキストにはデフォルト値がありません

varchar が特定の値より大きい場合、自動的にテキストに変換されます。一般的なルールは次のとおりです。

varchar(255)より大きい場合はtinytextになります

varchar(500)より大きい場合はテキストになります

varchar(20000)より大きい場合はmediumtextになります

3. 選択

1. 頻繁に変更されるフィールドには varchar を使用します。

2. 固定長がわかっている場合は、char を使用します。

3. 255 バイトを超えるデータの場合、varchar または text のみ使用できます。

4. varchar が使用できる場所ではテキストを使用しないでください。

5. 数値フィールドを使用できる場合は、文字列型ではなく数値型を使用するようにしてください。これにより、クエリと接続のパフォーマンスが低下し、ストレージのオーバーヘッドが増加します。これは、クエリと接続を処理するときにエンジンが文字列内の各文字を 1 つずつ比較し、数値型の場合は 1 回の比較だけで十分であるためです。

6. ストレージ エンジンが CHAR と VARCHAR の選択に与える影響:

MyISAM ストレージ エンジンの場合、可変長データ列ではなく固定長データ列を使用するのが最適です。これにより、テーブル全体が静的になり、データの取得が高速化され、スペースを節約して時間を節約できます。 InnoDB ストレージ エンジンの場合、InnoDB データ テーブルのストレージ形式では固定長と可変長が区別されないため、可変長データ列を使用するのが最適です。したがって、CHAR を使用することは、必ずしも VARCHAR を使用するよりも優れているわけではありません。ただし、VARCHAR は実際の長さに従って格納されるため、スペースを節約でき、ディスク I/O と総データ ストレージに適しています。

これで、MySQL での日付と時刻の型と文字列型の選択に関するこの記事は終了です。MySQL での日付と時刻の型と文字列型の選択に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 一般的な MySQL 関数の例の概要 [集計関数、文字列、数値、時刻と日付の処理など]

<<:  純粋な CSS3 を使用して、円の動的な光る特殊効果アニメーションを実装するためのサンプル コード

>>:  Vueコンポーネントの7つの通信方法についての深い理解

推薦する

Tomcat プロセスの CPU 使用率が高い場合のトラブルシューティング記録を記録する

この記事では主にTomcatプロセスを記録し、TCP接続が多すぎることによるCPU使用率の過剰のトラ...

MySQL 4 の一般的なマスタースレーブレプリケーションアーキテクチャ

目次1つのマスターと複数のスレーブのレプリケーションアーキテクチャマルチレベルレプリケーションアーキ...

JavaScript を使用してテーブル情報を追加および削除する

JavaScript 入門JavaScript は軽量なインタープリタ型の Web 開発言語です。言...

Dockerイメージ構築原理の分析(Dockerをインストールしなくてもイメージを構築できる)

イメージの構築は、DevOps プロセスにおいて非常に重要なプロセスです。一般的に、イメージの構築と...

MySQL サーバーにおける SSD パフォーマンスの問題の詳細な分析とテスト

【質問】 HP サーバーを使用しています。SSD が IOPS 約 5000 を書き込むと、%uti...

Vueルーティングルーターの詳細な説明

目次ルーティングプラグインをモジュール方式で使用するルートの使用宣言型ナビゲーションプログラムによる...

誰もが知っておくべきウェブサイトのユーザビリティに関する 10 のヒント

これ以上時間を無駄にせず、早速本題に入りましょう。 1. ロゴに代替テキストを追加するこれには 2 ...

MySqlエスケープの詳細な使用例

MySQL エスケープエスケープとは、エスケープ文字の本来の意味を意味します。エスケープ文字の目的は...

ウェブページを作る前に、これらのいわゆる仕様を見てみましょう

この記事では、Web ページを作成する前に確認すべき、いわゆる仕様をいくつかまとめました。皆様のお役...

MySQL操作テーブルでよく使われるSQLのまとめ

1. テーブル内のフィールドの種類を表示する テーブル名を記述する desc テーブル名 2. テー...

mysql コマンドライン スクリプトの実行例

この記事では、例を使用して MySQL コマンドライン スクリプトの実行について説明します。ご参考ま...

Docker に共通コンポーネント (mysql、redis) をインストールする方法

Dockerはmysqlをインストールします docker search mysql 検索 dock...

Linux usermod コマンドの使用

1. コマンドの紹介usermod (ユーザー変更) コマンドは、ユーザー アカウントを変更するため...

Docker で Spring-boot プロジェクトをデプロイするためのサンプル コード

1. 基本的な Spring-boot クイックスタート1.1 クイックスタート pom.xml は...

Windows 10 システムに mysql-8.0.13 (zip インストール) をインストールする詳細なチュートリアル

インストール環境の説明•システムバージョン: windows10 •MySQL バージョン: mys...