MySQLのデータベースの知識の概要を作成します

  • テーブルデザイン

  1. データベース名、テーブル名、フィールド名は小文字でなければならない、「_」、スプリット、および名前もはや12文字を超えると、あなたは名前がイタリア語を知っています見てみたいです。

  2. 私たちは、使用することをお勧めのInnoDBストレージエンジンを。

  3. 単精度浮動小数点ストアは、代替DECIMALのFLOATとDOUBLEを使用する必要があります。

  4. UNSIGNEDは非負の値を格納することをお勧めします。

  5. INT UNSIGNEDは、ストレージ推奨IPV4を

  6. 定義の長さを成形することは、代わりにINTのINT、(4)を使用するように、追加されません。

  7. TINYINT UNSIGNEDを使用するような範囲0-80のような短いデータ・タイプを、使用。

  8. 列挙型を使用することをお勧めしません、代わりにTINYINTを使用しています。

  9. TEXTを使用しないでくださいBLOBのタイプ。

  10. VARCHAR(N)、Nは、VARCHAR(255)のようなバイトの数よりも文字の数を表し、最大255の記憶することができる文字は、実際の幅Nを選択することが必要です

  11. 、できるだけ小さくVARCHAR(N)、NすべてのMySQL VARCHAR最大フィールド長のテーブルは、ソート、65535バイトであるとのクラスの一時テーブルを作成するためのメモリ操作、アプリケーションは、Nの長さを使用するメモリ

  12. テーブルのキャラクタ・セットUTF8を選択します。

  13. VARBINARYは、可変長文字列を格納し使用してください。

  14. メモリ使用のYEAR型、DATE型を使用して日付を格納し、(第2の精度)蓄積時間は、タイムスタンプを入力TIMESTAMP 4バイト、8バイトのDATETIMEを使用しているため、お勧めします。

  15. 投書欄は、NOT NULLとして定義されます。

  16. 他のテーブルに分割特大フィールド。

  17. データベースでは、使用VARBINARYを禁止BLOBのように店の写真、ドキュメント、および。

-------------------------------------------------- -------------------------------完璧な分割ライン---------------- -------------------------------------------------- ----------------------------------

整数データについて

①TINYINT:0-2 8-1 ^未署名が署名7〜2 ^ -2 ^ 7-1;
②SMALLINT:符号なし0〜2 ^ -2 ^ 16-1符号付き15〜2 ^ 15-1。
③MEDIUMINT:符号なしの0〜2 ^ 24-1〜23が2 ^ -2 ^ 23-1を締結している。
④INT:符号なし0 32-1 ^ 2に署名し-2 ^ 31 31-1 ^ 2;最も一般的に使用されます。
⑤BIGINT:符号なし0〜^ 64-1 2の符号付き-2 ^ 63 ^ 63-1 2。

 

多くの企業が誤って背後に「整数」の数が表していると思いますが、データベースの整数データの多くは意味「int型の長さ」「ZEROFILL /ゼロ機能を補完します。」我々は間違っている可能性がありあれこれ考えるために、明らかに、長さがない定義されていることを見つけます「記憶された最大幅を許可」、例えば、誤っていると思う  int(1) 格納することができません  10

INT(M)Mは、ディスプレイの最大幅を示します。効果的なディスプレイ255の最大の幅に関係なく、サイズまたは格納された値の種類の幅の表示範囲が含まれます。

ディスク上のINT(3)、INT(4)、INT(8)は、4 btyesは、ストレージスペースを占有されています。同じデータ型intを持つ外部のユーザー少し異なる方法、INT(M)に加えて、はっきりそれを置くために。

参照

「ハイパフォーマンスMySQLの」説明

著書「4.1選択する最適化されたデータタイプ」に記載された「高性能のMySQL」:

で、それが正当な値の範囲を限定するものではないが、MySQLは、(MySQLのコマンドラインクライアントなど)のインタラクティブなツールの数を提供していますMySQLは、このようなINT(11)のように整数型の幅を指定することができ、ほとんどのアプリケーションにとっては意味がありませんストレージの文字数を表示し、計算するために、INT(1)及びINT(20)が同一であります

「MySQLのマニュアル」の説明

MySQLの5.7手册 "12.2.5数値型属性":

MySQLは整数によって定義された表示長のような括弧に含まサポート  INT(4) 整数の表示サイズを定義する4文字より少ない数のために、いくつかのデータベースソフトウェアが4未満ビット「スペース」で充填され、4つの文字でありますデジタル数字。

これは、指定した長さよりも大きいがフィールドに書き込まれるデジタルストレージのフィールドの表示範囲の長さを制限しないだけでなく、表示番号を妨げない。例えば、  SMALLINT(3) フィールド及び  SMALLINT デジタルストレージスコープである  -32768 to 32767つ以上の格納されたデジタル場合、中央値はまだに格納することが許可されている  SMALLINT(3) フィールド、および元の数字。

組み合わせた場合に  ZEROFILL 使用される特性  0 などのパッドに、  INT(4) ZEROFILL フィールド番号  5 として記憶されます  0005

 

-------------------------------------------------- -------------------------------完璧な分割ライン---------------- -------------------------------------------------- ----------------------------------

varchar型について

MySQLは最初のバージョンを決定しなければならない
記憶UTF8文字の場合、16(各文字のための3バイト)を格納することができ、50のバイトを指し、4.0以下、VARCHAR(50) 
5.0以上、VARCHAR(50)、手段数字、文字またはUTF8文字(各文字に3バイト)は、50を格納することができ、それが格納されているかどうか、50文字です

実際には、最善の方法は、独自のデータベースにあるJianzhongの漢字の数を配置しようとする表できるようになりました5.0 MySQLが上に既にある、VARCHAR(50)が50個の文字を保存することができます

CREATE TABLE varchar_test(
`id`のINT11 )NOT NULL、
` 文字列 `VARCHAR(10 
)ENGINE = InnoDBは
DEFAULT文字セット = utf8COLLATE = utf8_general_ciは

(varchar_test値にINSERT 。1' 12345678 90 ' ); 
VALUEのINSERT INTO TEST02(2' 123456789 11 ' )。
結果:
INSERT(1、 '12345678 90' VALUEのvarchar_test INTO 
影響を受けた行:. 1 
時間:0 .041sは
 、VALUE(2 varchar_test。INSERT INTO「123456789 11 「 1406 -長いデータ列TOOのための」行AT文字列」1。時間:0


-------------------------------------------------- -------------------------------完璧な分割ライン---------------- -------------------------------------------------- ----------------------------------

 

MySQLの日付と時刻タイプ

タイプMySQLの日付と時刻が5種類、すなわち、DATE、TIME、YEAR、DATETIME、TIMESTAMPの時間値を表します。

TIMESTAMPタイプは、独自の自動更新機能を持っている、MYSQL5.7はCURRENT_TIMESTAMPをデフォルトすることができます



 

 

おすすめ

転載: www.cnblogs.com/mark-luo/p/10962021.html
おすすめ