六 資料型別選擇(MySQL讀書筆記)

2021-09-26 09:12:52 字數 1165 閱讀 1180

1、char & varchar

char

varchar

固定長度字串(不足空格補位)

可變長度字串

處理速度比 varchar 快得多

浪費空間

1.1、不同儲存引擎對兩者使用原則有所不同

myisam

建議使用固定長度的資料列

memory

都可以;均作為 char 處理

innodb

建議使用 varchar;內部的行儲存格式不區分是否固定長度(本質上,固定長度的 char 不一定比 varchar 效能好;使用 varchar 來最小化需要處理的資料行的儲存總量和磁碟 io更 好)

2、text & blob

2.1、text:只能儲存字元資料

2.2、blob:能用來儲存二進位制資料

2.3、特別是在執行大量的刪除操作時,兩者都會有效能問題刪除會導致資料表留下『空洞』,對插入效能有影響。需要定期使用 optimize table 功能定期進行碎片整理)【optimize table tablename】

2.4、可以使用合成的(synthetic)索引提高大文字欄位的查詢效能

合成索引就是根據大文字欄位的內容建立乙個雜湊值,並把這個雜湊值儲存在單獨的資料列中,然後通過檢索雜湊值即可找到對應的文字;只能用於精確匹配的查詢

3、浮點數(float double) & 定點數(decimal numberic)

3.1、浮點數一般用於表示含有小數部分的數值。如果插入的精度超過實際精度,插入值會被四捨五入然後插入,過程不報錯

3.2、定點數實際以字串形式儲存。預設的 sqlmode 下,插入超出精度的數值 mysql 會進行警告,但實際仍按照四捨五入進行插入;如果 sqlmode 是在 traditional(傳統模式)下,系統直接報錯導致無法插入

3.3、浮點數存在精度不准問題(插入值不等於實際儲存的記錄值);浮點數的比較也是乙個普遍的問題 - 盡量避免使用浮點數進行比較;特殊值處理

4、日期型別

4.1、timestamp 表示的日期範圍比 datetime 短得多

4.2、timestamp 與時區對應

MySQL資料型別 資料型別選擇

在mysq中建立表時,需要考慮為字段選擇哪種資料型別是最合適的。選擇合適的資料型別,會提高資料庫的效率。整數型別和浮點數型別最大的區別在於能否表達小數。整數型別不能表示小數,而浮點數型別可以表示小數。不同的整數型別的取值範圍不同。tinyint型別的取值範圍是0 255。如果欄位的最大值不超過255...

MySQL資料型別選擇

在資料庫設計的時候,如果資料型別選擇不當,可能會對效能造成很大的影響,比如儲存姓名的字段,如果選擇vchar 255 那麼暫用更多的儲存空間,同時也會對io產生影響,因此在資料庫設計時對資料庫資料型別的準確選擇,也會對資料庫的效能有乙個很大的提公升。我在工作中就遇到過很多時候一些開發人員不注意對資料...

mysql 資料型別選擇

1.1char與varchar 由於char是固定長度的,所以訪問速度比varchar快。缺點是浪費儲存空間,程式需要對行尾進行處理,所以對那些長度變化不大,並且對查詢速度有較高要求的資料可以通過char來訪問。當然這個也是由不同的儲存引擎來決定的。myisam 儲存引擎 建議使用固定長度的資料列代...