MySQL 資料類型的簡單選擇

來源:互聯網
上載者:User

標籤:

選擇合適的資料類型:
char和varchar:

+---------+------------+| char(6) | varchar(6) |+---------+------------+|         |            || str     | str        || str123  | str123     || str123  | str123     |+---------+------------+4 rows in set (0.00 sec)

  


char(6)的儲存需求總是6個位元組。
varchar(6)儲存‘‘需要個1位元組。
varchar(6)儲存‘str‘需要4個位元組。
varchar(6)儲存‘str123‘需要7個位元組。
varchar(6)儲存‘str123no‘需要7個位元組。

總結:char(n)所需要的儲存位元組為n
varchar(n)所需要的位元組依賴於插入的字串m,m+1<=位元組<=n+1

text與blob
一般儲存少量字串的時候,我們會選擇char或者varchar,而在儲存較大文本的時候通常會選擇text或者blob。二者之間的主要差別是blob能用來儲存位元據,比如照片。而text只能用來儲存字元資料,比如一片文章。
text又分為text、mediumtext、longtext
blob又分為blob、mediumblob、longblob
主要區別就是儲存文本長度不同和儲存位元組不同。

經常使用blob和text類型會引起效能的降低。刪除操作會在表中留下很大的"空洞"(並不會因為資料的減少而清空空間。類似於書架,書拿走了,空間還在佔用),可以定期最佳化表進行磁碟重組。optimize table

日期類型的選擇
DATE、TIME、DATETIME、TIMESTAMP
幾個原則:
如果只需要年,用YEAR類型就可以。
如果需要的時間範圍比較大,用DATETIME
如果給不同時區使用者使用,則用TIMESTAMP

浮點數和定點數
浮點數一般使用者包含有小數位的數值。float、double如果插入資料到過定義的精度有可能被四捨五入。定點數實際上是以字串形式存放的。所以定點數可以精確的儲存資料。如果實際插入的資料大於精度,則會警示。decimal用來表示定點數。
在精度要求比較高的應用中類似貨幣要使用定點數儲存。

MySQL 資料類型的簡單選擇

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.