mysql和oracle的一個漢字佔幾個字節

之前一直使用oracle11g,一個漢字佔3個字節,因此在操做mysql時也一直這樣分配長度。mysql

今天測試了下發現不對了sql

能夠看到第一個的長度確實是15,可是第二個爲何是5?oracle

在網上找到資料:char_length計算的是字符長度,而length計算的是字節長度,恰好我使用的是utf8,一個漢字佔3個字節,佔一個字符。性能

那好了,應該是對的上了,但是好奇心我就試了下測試

爲何這是相同的?由於這不是漢字大笑im

好了,如今知道原來mysql和oracle同樣的,可是又看到一篇說mysql的varchar與oracle的varchar2是不同的,前者是用字符作單位的,後者是用字節作單位的。對於oracle11g的varchar2是用字節作單位的在之前玩oracle時測試過,可是mysql就沒有測試過,好吧如今測試下。我先將字段長度改小看下能不能給容下,測試結果確實是能夠的,證實mysql的varchar是用字符作單位的,這裏就不貼圖了,你們能夠本身驗證下。總結

總結:oracle 中varchar2(10)  既10個字節3個漢字img

            mysql  中varchar(10) 既10個字符10個漢字字符

因此如今能夠將mysql的varchar字段減少1/3了,性能也能提升哦。arc

相關文章
相關標籤/搜索