MYSQL字元型別

2021-08-02 08:21:15 字數 880 閱讀 6773

標籤(空格分隔): 高效能mysql 第四章 schema與資料型別 字元型別

值的儲存與具體的儲存引擎有關,下面以innodb為例說明

這長字串,需要1或2個額外的位元組記錄字元長度。varchar(10) 11byte,varchar(1000) 1002byte。update時可能使行變得更長,消耗較大。

適用:

1. 字串值的最大長度比平均長度大得。

2. 列的更新少

定長字串。當值不足指定長度時,會以空格填充,所以不能識別末尾處的空格,相當於刪除末尾空格。

適用:

1. 值短

2. 所有的值長度接近

3. 經常變更

varchar(5)、varchar(200)哪個來儲存」hello」更有優勢?

varchar(5)更好,因為mysql會分配固定的大小的記憶體塊來儲存內部值。尤其是使用(記憶體、磁碟)臨時表進行排序和操作時,會浪費大量記憶體。

字元型別:tingtext smalltext text mediumtext longtext

smalltext text是同義詞

二進位制型別:tingblob smallblob blob mediumblob longblob

blob smallblob是同義詞

值太大時,innodb會使用專門的「外部」儲存區域進行儲存,此時每個值在行內需1~4個位元組儲存乙個指標

技巧:使用order by substring減少臨時表的空間

資料實際儲存為整數,在表的.frm檔案中存在「數字-字串」的對映,且排序也是按內部整數排序。排序問題可以用order by field([field])解決

mysql 大字元型別 MySQL字元型別

1.整數型別 整數型別 位元組數 無符號範圍 有符號的範圍 tinyint 1 0 255 128 127 smalllint 2 0 65535 32768 32767 mediumint 3 0 16777215 8388608 8388607 int 4 0 4294967295 214748...

MySQL字元型別

型別 位元組數有符號型範圍 無符號型範圍 unsigned tinyint m 1位元組 128 127 0 255 smallint m 2位元組 32768 32767 0 65535 mediumint m 3位元組 8388608 8688607 16777215 int m 4位元組 21...

mysql字串型別 mysql 字串型別

字串型別 字串型別指char varchar binary varbinary blob text enum和set。該節描述了這些型別如何工作以及如何在查詢中使用這些型別。型別大小用途 char0 255位元組定長字串 varchar0 65535 位元組變長字串 tinyblob0 255位元組...