mysql和oracle的一個漢字占幾個字元

來源:互聯網
上載者:User

標籤:article   貼圖   sql   圖片   img   b2c   pos   targe   oracle   

轉自:http://blog.csdn.net/u011575570/article/details/47414513

以前一直使用oracle11g,一個漢字佔3個位元組,所以在操作mysql時也一直這樣分配長度。

今天測試了下發現不對了

 

可以看到第一個的長度確實是15,但是第二個為什麼是5?

在網上找到資料:char_length計算的是字元長度,而length計算的是位元組長度,剛好我使用的是utf8,一個漢字佔3個位元組,佔一個字元。

 

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

 

為什麼這是相同的?因為這不是漢字

好了,現在知道原來mysql和oracle一樣的,但是又看到一篇說mysql的varchar與oracle的varchar2是不一樣的,前者是用字元做單位的,後者是用位元組做單位的。對於oracle11g的varchar2是用位元組做單位的在以前玩oracle時測試過,但是mysql就沒有測試過,好吧現在測試下。我先將欄位長度改小看下能不能給容下,測試結果確實是可以的,證明mysql的varchar是用字元做單位的,這裡就不貼圖了,大家可以自己驗證下。

總結:oracle 中varchar2(10)  既10個位元組3個漢字

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

所以現在可以將mysql的varchar欄位減小1/3了,效能也能提高哦。

mysql和oracle的一個漢字占幾個字元

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.