MySQLデータベースの最も完全な知識+インタビューの質問の仕上げ

データベース、特にリレーショナルデータベースは、プログラマによって最も一般的に使用されます。優れたエンジニアにとっては、CRUDだけでは不十分です。その原則を理解する必要もあります。その原則を理解することで、プログラマはより信頼性が高く効率的なコードを記述し、実用的な問題を解決する能力を向上させることができます。この記事ではMySQLをたとえば、すべての人とデータベースの原則を学びます。

データベースの基本

1.データベースを使用する理由

データはメモリに保存されます

利点:アクセス速度が速い
欠点:データを永続的に保存できない

データはファイルに保存されます

利点:データは永続的に保存されます
欠点:1)メモリ操作よりも速度が遅く、頻繁なIO操作2)データクエリが不便

データはデータベースに保存されます

1)データは永続的に保存されます2)SQLステートメントは便利で効率的なクエリに使用されます3)データ管理は便利です

2. SQLとは何ですか?

SQLと呼ばれる構造化クエリ言語(Structured Query Language)は、データベースクエリ言語です。役割:データへのアクセス、クエリ、更新、およびリレーショナルデータベースシステムの管理に使用されます。

3. MySQLとは何ですか?

MySQLは、スウェーデンの会社MySQL ABによって開発されたリレーショナルデータベース管理システムであり、Oracleの製品です。MySQLは最も人気のあるリレーショナルデータベース管理システムの1つであり、Webアプリケーションに関しては、MySQLは最高のRDBMS(リレーショナルデータベース管理システム)アプリケーションソフトウェアの1つです。MySQLはオープンソースで無料であり、簡単に拡張できるため、Javaエンタープライズレベルの開発で非常によく使用されます。

  1. 3つのデータベースパラダイムとは
  2. 権限に関するmysqlテーブルは何ですか
  3. MySQL binlogにはいくつの入力フォーマットがありますか?違いは何ですか?

スペースが限られているため、ここでは一部を省略しています。完全版が必要な方は、下のリンクをクリックしてください。

リンク:1103806531パスワード:CSDN

データのタイプ

1.整数型

TINYINT、SMALLINT、MEDIUMINT、INT、BIGINTを含み、それぞれ1バイト、2バイト、3バイト、4バイト、8バイトの整数を表します。UNSIGNED属性を使用して任意の整数型を追加できます。これは、データが符号なし、つまり負でない整数であることを示します。
長さ:整数型は長さを指定できます。例:INT(11)は長さ11のINT型を意味します。長さはほとんどのシナリオで意味がありません。値の正当な範囲を制限するのではなく、表示される文字の数にのみ影響し、UNSIGNED ZEROFILL属性と組み合わせて使用​​する場合にのみ意味があります。
たとえば、タイプがINT(5)に設定され、属性がUNSIGNED ZEROFILLであるとします。ユーザーが挿入したデータが12の場合、データベースに保存される実際のデータは00012です。

2.実数型

FLOAT、DOUBLE、DECIMALを含みます。
DECIMALは、BIGINTより大きな整数を格納するために使用でき、正確な10進数を格納できます。
FLOATとDOUBLEには値の範囲があり、近似計算に標準の浮動小数点の使用をサポートしています。
FLOATとDOUBLEは、計算時にDECIMALよりも効率的ですDECIMALは処理用の文字列として理解できます。

3.文字列型

VARCHAR、CHAR、TEXT、BLOBを含むVARCHARは
可変長文字列を格納するために使用され、固定長タイプよりも多くのスペースを節約します。
VARCHARは、追加の1バイトまたは2バイトを使用して、文字列の長さを格納します。列の長さが255バイト未満の場合は、表現に1バイトを使用します。それ以外の場合は、表現に2バイトを使用します。
VARCHARに格納されたコンテンツが設定された長さを超えると、コンテンツは切り捨てられます。
CHARは固定長であり、定義された文字列の長さに従って十分なスペースが割り当てられます。
比較を容易にするために、CHARは必要に応じてスペースで埋められます。
CHARは非常に短い文字列を格納するのに適しています。または、すべての値が同じ長さに近いです。
CHARに格納されているコンテンツが設定された長さを超えると、コンテンツも切り捨てられます。

使用方法:
頻繁に変更されるデータの場合、CHARはVARCHARよりも優れています。CHARは断片化しにくいためです。
非常に短い列の場合、CHARはVARCHARよりもストレージスペースで効率的です。
使用時に必要なスペースのみを割り当てるように注意してください。列が長いほど、ソート時に多くのメモリを消費します。
TEXT / BLOBタイプの使用は避けてください。クエリを実行するときに一時テーブルが使用されるため、パフォーマンスに重大なオーバーヘッドが発生します。

4.列挙型(ENUM)

固有のデータを事前定義されたコレクションとして保存します。
一般的に使用される文字列型の代わりにENUMを使用できる場合があります。
ENUMストレージは非常にコンパクトで、リストの値を1または2バイトに圧縮します。
ENUMが内部的に保存される場合、実際には整数が保存されます。
混乱を招きやすいため、ENUM列挙では定数として数値を使用しないようにしてください。
ソートは、内部に格納された整数に従って行われます

5.日時タイプ

タイムスタンプを使用してみてください。スペース効率は日時よりも高くなります。
通常、タイムスタンプを整数で格納するのは不便です。
微妙に保存する必要がある場合は、bigintストレージを使用できます。
これを見ると、この本当の質問の方が答えやすいでしょう。

エンジン

  1. MySQLストレージエンジンMyISAMとInnoDBの違い
  2. MyISAMとInnoDBの違い
  3. MyISAMインデックスとInnoDBインデックスの違いは何ですか?
  4. InnoDBエンジンの4つの主な機能
  5. ストレージエンジンの選択

インデックス

  1. インデックスとは何ですか?
  2. インデックスの利点と欠点は何ですか?
  3. インデックスの使用シナリオ(重点)
  4. インデックスのタイプは何ですか?
  5. インデックスデータ構造(bツリー、ハッシュ)
  6. インデックス作成の基本原則

やっと

この記事が皆様のお役に立てば幸いです。

スペースが限られているため、トランザクション、ロック、ビュー、ストアドプロシージャと関数、トリガー、一般的に使用されるSQLステートメント、SQL最適化、データベース最適化などはこの記事では示していませんが、アーキテクトを含むドキュメントにまとめました。 Javaに関するビデオチュートリアルと体系的な資料の完全なセット、困っている友達は下のリンクをクリックして受け取ることができます

リンク:1103806531パスワード:CSDN

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_48655626/article/details/108711452