mysql char varchar 性能_Mysql小细节:varchar与char在性能上的特点
varchar與char的一個主要區別是存儲方式的不同
varchar 是變長存儲
占用的存儲空間 = 存儲內容實際大小 + 長度記錄位
char 是定長存儲
占用的存儲空間 = 字段聲明的寬度
存儲方式對性能是有影響的
例如
分別使用 varchar(10) 與 varchar(255) 定義一個字段,實際存儲的字符串為 “abcde”
在存儲空間方面,他們沒有區別,因為 varchar 是變長存儲,只占用實際內容的寬度
但在查詢時,他們就有區別了,會占用不同的內存空間
因為執行查詢時,mysql為了優化查詢,在內存中對字符串會使用固定的寬度,所以定義的寬度越長,就會消耗更多的內存
存儲方式對I/O性能也有影響,如果使用 varchar 定義了字段,此字段內容還是更新頻繁的,例如開始是個長字符串,后來更新為一個短字符串,因為 varchar 占用空間就是字符串實際寬度,那么這時就產生了碎片空間
而 char 類型是定長存儲,就不會產生存儲碎片,有更好的I/O性能
不少開發人員對 varchar 與 char 的使用上存在誤區,喜歡用 varchar,不喜歡用 char,使用 varchar 時也喜歡直接定義一個很大的寬度,擔心實際使用時寬度不夠,通過了解他們各自的特點,有助于更好的選擇合適的類型
點擊下方“閱讀原文”查看 文章列表
總結
以上是生活随笔為你收集整理的mysql char varchar 性能_Mysql小细节:varchar与char在性能上的特点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stm32电机控制定时器1_STM32通
- 下一篇: mysql索引有哪些了解_Mysql索引