iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
Modern Web

MySQL,我的超人系列 第 18

Day18-MySQL的資料類型-字串、數字、時間

  • 分享至 

  • xImage
  •  

資料類型

字串String

1.使用頻率高

1.CHAR(),固定長度
2.VARCHAR(),長度不固定

CHAR()容易浪費儲存空間,但效能較好,VARCHAR()會浪費CPU時間,VARCHAR(50~255)就能夠應付大部分的使用需求,包含商品名稱、顧客姓名、電子郵件,亦能簡化資料庫的設計。

2.使用頻率偏低

1.TinyText,儲存二進位資料,最大長度255個字元,儲存小而有價值的單行資訊或表的簡短描述
2.TEXT,最大長度65535個字元
3.MediumText,最大長度16777215位元
4.LongText,最大長度4294967295位元

要用到3、4,大量文字,如書籍、歷史紀錄

數字Numeric

整數

屬性可以點擊Day6,查看

1.TINYINT,1 位元組,範圍-128~127,加上UNSIGN,範圍變成0-255,年齡、身高、體重
2.SMALLINT,範圍-2^15 (-32,768) 到 2^15-1 (32,767)
3.INT,範圍-2^31到2^31-1
4.BIGINT,範圍-2^63到2^63-1

規劃資料庫時必須選用最小化的資料大小,比如說只是儲存1個數字,就不要用INT,造成空間浪費

定點數

DECIMAL(最大有效位數, 小數點後位數),需要精確計算的欄位,舉例來說像是老外做的手游,很多禮包都是99.9美,這種的(讓人感覺沒有到100美,都是套路阿)

浮點數

1.FLOAT
2.DOUBLE

大量數據計算,精確值不重要

時間Date / Time

1.DATE,日期
2.TIME,時間
3.DATETIME,日期+時間
4.TIMESTAMP,時間戳

基本上使用哪種時間欄位也是取決於業務需求,如果說紀錄商品只需要到日期,例如出貨單,不過也有需要到時間的,例如商品的保存日期,時間戳的應用像是某些網站記錄訪客最後上線時間,就會用到這個型態進行後續的運算。

總結

每次在規劃資料庫時基本都會使用都上述字串、數字、時間的型態,不過MYSQL還有使用頻率少的資料型態,預計明天會寫到

預告

Day19-MySQL的資料類型-二進位、JSON


上一篇
Day17-MySQL的併發(Concurrency)-不可重複讀取、幻讀、併發總結
下一篇
Day19-MySQL的特殊資料-二進位、JSON
系列文
MySQL,我的超人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言