MySQL數據類型

對於數據優化,要選擇最合適的數據類型,而不是最大的。優化

  • 整形
  1. TINYINT:有符號值 -128-127         (二百五)

                              無符號值  0-255數據類型

                              佔 1 個字節;數據

 

        2.SMALLINT:有符號值 -32768-32767        (六萬五)時間

                                無符號值  0-65535字符

                               佔 2 個字節;數字

 

        3.MEDIUMINT:有符號值 -8388608-8388607        (一千六百萬)枚舉

                                   無符號值  0-16777215ps

                                   佔 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',...):一、二、三、4或8個字節,取決於SET成員的數目,最多64個成員;

性別什麼的就能夠用枚舉了。枚舉只能選一個,SET能夠選其中的各類排列組合。

相關文章
相關標籤/搜索