1. 程式人生 > >mysql資料庫型別選擇和比較

mysql資料庫型別選擇和比較

時間型別

Date

名稱 解釋
顯示格式 YYYY-MM-DD
顯示範圍 1000-01-01 到 9999-12-31
應用場景  當業務需求中只需要精確到天時,可以用這個時間格式
後臺取值 @JSONField(format=”yyyy-MM-dd”)

Time

名稱 解釋
顯示格式 HH:mm:ss
顯示範圍 00:00:00到23:59:59
應用場景  當業務需求中只需要每天的時間,可以用這個時間格式
後臺取值 @JSONField(format=”HH:mm:ss”))

DateTime

名稱 解釋
顯示格式 YYYY-MM-DD HH:mm:ss
顯示範圍 1000-01-01 00:00:00 到 9999-12-31 23:59:59
應用場景  當業務需求中需要精確到秒時,可以用這個時間格式
後臺取值
@JSONField(format=”yyyy-MM-dd HH:mm:ss”)

TimeStamp

名稱 解釋
顯示格式 YYYY-MM-DD HH:mm:ss
顯示範圍 1970-01-01 00:00:01 UTC to 2038-01-19 03:14:07 UTC
應用場景  轉化成utc(世界標準時間)儲存,目前只能到2038年,可以自動更新時間
後臺取值 @JSONField(format=”yyyy-MM-dd HH:mm:ss”)

數字型別

記住一個原則,越小的列會越快。所以有必要了解各種型別的大小

bigint

從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型資料(所有數字),無符號的範圍是0到18446744073709551615。一位為 8 個位元組。

int

一個正常大小整數。有符號的範圍是-2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型資料(所有數字),無符號的範圍是0到4294967295。一位大小為 4 個位元組。

mediumint

一箇中等大小整數,有符號的範圍是-8388608到8388607,無符號的範圍是0到16777215。 一位大小為3個位元組。

smalint

一個小整數。有符號的範圍是-2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型資料,無符號的範圍是0到65535。一位大小為 2 個位元組。MySQL提供的功能已經綽綽有餘,而且由於MySQL是開放原始碼軟體,因此可以大大降低總體擁有成本。

tinyint

1個位元組
有符號的範圍是-128 - 127,無符號的範圍是 從 0 到 255 的整型資料。一位大小為 1 位元組。字典表用這個欄位足以。

Float

佔四個位元組
有符號的取值範圍:-3.402823466E+38~-1.175494351E-38。
無符號的取值範圍:0 和 -1.175494351E-38~-3.402823466E+38。

Double

佔八個位元組
有符號的取值範圍:-1.7976931348623157E+308~-2.2250738585072014E-308。
無符號的取值範圍:0 和 -2.2250738585072014E-308~-1.7976931348623157E+308。

Decimal(M,D)

佔M+2 個位元組
由M(整個數字的長度,包括小數點,小數點左邊的位數,小數點右邊的位數,但不包括負號)和D(小數點右邊的位數)來決定,M預設為10,D預設為0 .

字串型別

CHAR(M) 或 NCHAR(M)

M的範圍為1 - 255,NCHAR表示使用預設的字符集.在資料庫中以空格補足,但在取出來時末尾的空格將自動去掉. 

VARCHAR(M)

M的範圍為1 - 255.在資料庫中末尾的空格將自動去掉. 

TINYBLOB 或 TINYTEXT 

255(2^8-1)個字元 

BLOB 或 TEXT 

65535(2^16-1)個字元 

MEDIUMBLOB 或 MEDIUMTEXT

16777215 (2^24-1)個字元 

LONGBLOB 或 LONGTEXT 

4294967295 (2^32-1)個字元