MySQL資料表的資料型別總結與選擇

2021-09-24 04:43:24 字數 1356 閱讀 7367

1)整數型別:

tinyintt,smallint,mediumint,int,bigint。分別使用8,16,24,32,64位儲存空間。它們可以儲存的值得範圍從-2的(n-1)次方到2的(n-1)次方-1,其中n是儲存空間的位數。

注:mysql可以為整數型別指定寬度,例如int(11),對大多數應用這是沒有意義的,它不會顯示值的合法範圍,只是規定了mysql的一些互動工具(如命令列客戶端)用來顯示字元的個數。對於儲存於計算來說,int(1)和int(20)是相同的。

2)實數型別:

實數是帶有小數部分的數字。然而,它們不只是為了儲存小數部分;也可以使用decimal儲存比bigint還大的整數。

mysql既支援精確型別(decimal),也支援不精確型別(float和double)。浮點型別在儲存同樣範圍的值時,通常比decimal使用更少的空間,float使用四個位元組儲存,double使用8個位元組儲存。

3)字串型別:

varchar型別用於儲存可變長度的字串,是最常見的字串資料型別。它一般比定長型別更節省空間,因為它僅使用必要的空間。

char:定長字串

binary:儲存二進位制字串,二進位制字串跟常規字串非常類似,但是二進位制字串儲存的是位元組碼而不是字元,填充也不一樣:mysql填充binary採用的是\0而不是空格,在檢索時也不會去掉填充值。

4)blob和text型別:

blob和text都是為儲存很大的資料而設計的字串資料型別,分別採用二進位制和字元方式儲存。

5)列舉型別:

列舉列可以把一些不重複的字串儲存成乙個預定義的集合。列舉欄位是按照內部儲存的整數而不是定義的字串進行排序的。列舉列表最不好的地方是字串是固定的,新增或刪除字串必須使用alter table。

6)日期和時間型別:

mysql能儲存的最小時間粒度為秒。datetime儲存的時間範圍為2023年到2023年,精度為秒常用的格式如下"2008-12-01 12:00:22";timestamp只使用4個位元組的儲存,因此它的範圍比datetime小的多,只能表示從2023年到2023年。通常盡量使用timestamps

mysql支援的資料型別非常多,選擇正確的資料型別對於獲得高效能至關重要。以下是選擇資料型別的基本原則:

1)更小的通常更好:

一般情況下,應該盡量使用可以正確儲存資料的最小資料型別。更小的資料型別通常更快。因為他們占用更少的磁碟、記憶體和cpu快取,並且處理時需要的cpu週期也更少。

2)盡量避免null:

通常情況下最好指定列為not null,除非真的需要儲存null值。因為對於查詢中包含可以null的列,對mysql來說更難優化,因為可為null的列使得索引索引統計和值比較都更複雜,可為null的列會使用更多的儲存空間,在mysql中也需要特殊處理。

MySQL資料表型別 資料型別

表型別 mysql的資料表型別很多,其中比較重要的是myisam,innodb這兩種。這兩種型別各有優缺點,需要根據實際情況選擇適合的,mysql支援對不同的表設定不同的型別。下面做個對比 myisam表型別是一種比較成熟穩定的表型別,但是myisam對一些功能不支援。myisam innodb 事...

資料型別與資料表

mysql資料型別 資料表是資料庫最重要的組成部分之之一,是其他物件的基礎 use db name 開啟資料庫 create table if notexists table name column name data type,例如我們要建立乙個名字叫tb1的資料表 mysql create ta...

mysql資料型別總結表

1 整型 mysql資料型別 含義 有符號 tinyint m 1個位元組 範圍 128 127 smallint m 2個位元組 範圍 32768 32767 mediumint m 3個位元組 範圍 8388608 8388607 int m 4個位元組 範圍 2147483648 214748...