1.數字類型
小數的我就不聊了,因為有小數點的一般都是用字符串保存。關於整數,有幾種可以選TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,分別占1、2、4、8字節。如果無符號,則其最大為255、65535、16777215、4294967295和18446744073709551615。一般年齡呀身高呀用tinyint就足夠了,應該合理使用,保證字節不會被浪費。
然后我說一下長度,就是int(多少),其實mysql保存int的時候一般默認為11,這個我們設不設置都沒什么關系,因為這只是顯示的長度,
如
int(10)顯示結果為0000000010
int(3)顯示結果為010
字節都是占4個字節,所以在設計時可以直接int就行不用設置長度。
2.varchar和char的區別
首先說一下這2個的長度,varchar占的字節就是其用的長度+1,char占的字節就是其長度,因為varchar的長度是可變的,兩者的最大長度是255(utf-8中文字符占3個字節)。
char占的字節是固定不變的,設定多少長度就是多少字節,varchar是根據其使用的長度+1,之所以還+1是為了保存其使用了的長度,一般在使用到固定長度的字段時,如手機號
碼,電話號碼一般都用char,當字段不固定是可以用varchar。
3.時間日期
mysql有5種表示時間值的日期和時間類型,分別為YEAR,DATE,TIME,TIMESTAMP,DATETIME。所占字節分別為1、3、3、4、8。一般我是使用datetime,直接date("Y-m-d H:i:s")進行保存,時間戳的話就用int保存就行。