標籤:哈哈 -128 時間 har arc date 最大 最佳化 一個
對於資料最佳化,要選擇最合適的資料類型,而不是最大的。
- TINYINT:有符號值 -128-127 (二百五)
無符號值 0-255
占 1 個位元組;
2.SMALLINT:有符號值 -32768-32767 (六萬五)
無符號值 0-65535
占 2 個位元組;
3.MEDIUMINT:有符號值 -8388608-8388607 (一千六百萬)
無符號值 0-16777215
占 3 個位元組;
4.INT:有符號值 -2147483648-2147483647 (四十二億)
無符號值 0-4294967295
占 4 個位元組;
5.BIGINT:有符號值 -9223372036854775808-9223372036854775807 (千億萬億(ps:有這個念法嗎,哈哈))
無符號值 0-18446744073709551615
占 8 個位元組;
例如:年齡,就應該用TINYINT就夠了。想起自己原來全是用INT。
用來記錄一些小數。
1.FLOAT:能精確到小數點後7位,一般都用這個,至於具體有多大,這個:-3.402823466E+38-(-1.175494351E-38)。E+38=10^38
2.DOUBLE:大概是FLOAT的十倍。
傳說用得不多,因為要考慮跨時區的問題,一般情況都是用數字來儲存的。但是,還是禮貌的列一下:
1.YEAR(1970-2069); 2.TIME(-8385959到8385959); 3.DATE(活不到); 4.DATETIME(也活不到,精確到秒); 5.TIMESTAMP(1970.01.01.00:00:00-2037.12.31.23:59:59)。
1.CHAR[M]:0<=M<=255 個位元組,定長;
2.VARCHAR[M]:L+1 個位元組 L<=M 且 0<=M<=65535,變長;
3.TINYTEXT:L+1 個位元組,L<2^8;
4.TEXT:L+2 個位元組,L<2^16;
5.MEDIUMTEXT:L+3 個位元組,L<2^24;
6.LONGTEXT:L+4 個位元組,L<2^32;
7.ENUM(‘value1‘,‘value2‘,...):1或2個位元組,卻決於枚舉值的個數,最多65535個值;
8.SET(‘value1‘,‘value2‘,...):1、2、3、4或8個位元組,取決於SET成員的數目,最多64個成員;
性別什麼的就可以用枚舉了。枚舉只能選一個,SET可以選其中的各種排列組合。
MySQL資料類型