ntext在mysql_varchar和text说不清的那些事
數據庫定義到char類型的字段時,不知道大家是否會猶豫一下,到底選char、nchar、varchar、nvarchar、text、ntext中哪一種呢?結果很可能是兩種,一種是節儉人士的選擇:最好是用定長的,感覺比變長能省些空間,而且處理起來會快些,無法定長只好選用定長,并且將長度設置盡可能地小;另一種是則是覺得無所謂,盡量用可變類型的,長度盡量放大些。
小編在本文將跟大家分享MySQL中的varchar和text兩種字段類型~
1.varchar整個字段最長只能是64k,根據編碼不通,能夠存儲最長的字符數不同,另外表示varchar長度的部分在最前端也需要占用1-2個字節
2.text類型分為4類,tinytext、text、mediumtext和longtext
分別是256字節,65535字節,16777216字節和4294967296(4GB)
text類型不能指定默認值。在mysql中,對于text類型數據和varchar/char的存儲有些不同,text類型的數據,將被存儲在元數據表之外地方,但是varchar/char將和其他列一起存儲在表數據文件中.
text數據類型實際上將會大幅度增加數據庫表文件尺寸,那么在物理存儲方面有些影響,同時對text數據的檢索和IO輸出也會增加對內存的競爭.
3.text列存儲不放在元數據行,另外開辟存儲空間,行存儲的只是blob的指針,可能引起io爭用
4.盡量不用text類型,如果一定要使用,請與DBA商量之后使用
小結:
根據存儲的實現:可以考慮用varchar替代tinytext
如果需要非空的默認值,就必須使用varchar
如果存儲的數據大于64K,就必須使用到mediumtext,longtext
varchar(255+)和text在存儲機制是一樣的
需要特別注意varchar(255)不只是255byte,實質上有可能占用的更多。
特別注意,varchar大字段一樣的會降低性能,所以在設計中還是一個原則大字段要拆出去,主表還是要盡量的瘦小
小編結語:
很多時候,我們建議將text類型特別是長度較大或者變更頻繁的數據,存儲在其他專有的平臺中,例如NOSQL..本質上說,不是mysql不適合存儲text,而是在太多的情況下我們期望mysql能夠更加高效的提供小數據查詢/事務處理。
更多內容盡在課課家教育!
總結
以上是生活随笔為你收集整理的ntext在mysql_varchar和text说不清的那些事的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: barrons ap计算机科学,巴朗ap
- 下一篇: mysql长事务慢查询解决方案_MySQ