標籤(空格分隔): 高效能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位元組...