最速怪談選手権

質問させて頂きます。
本当に初歩的な質問で申し訳ありませんが、よろしくお願いいたします。

VARCHAR(255)でカラムをひとつ作ったとして、
そこに「abcdefghijk」(11バイト?)と「a」(1バイト?)でそれぞれ1億件データを作った場合、
データの差は1G(10バイト×1億)ということになるのでしょうか。
それともVARCHAR(255)で型を指定しているので、中身が何だろうと変わらなかったりするんでしょうか。
すごく初歩的なことを聞いているとは思うのですが、VARCHARの可変長文字列というのがいまいち理解できず質問させて頂きました。

質問に不備などあればすぐに補足させて頂くのでよろしくお願い致します。

A 回答 (1件)

varcharは文字のバイト数+1バイト必要となります。


「abcdefghijk」なら12バイト、「a」なら2バイトです
仮にchar(11)に入れた「abcdefghijk」は11バイトと
フルに埋めた場合はvarcharより有利ですが
「a」でも11バイト使うので、文字長が決まっていないときは
総じてvarcharの方が有利になります。

なお、文字列型のカッコ内の数字は、バイト数ではなく文字数なので
漢字などの入力をするときにはかならずしも計算があいませんのでご注意ください
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
今までずっとふわふわして覚えていた部分ですが、いっきに理解出来ました!
CHARの説明までして頂き、比較することでよりどちらをどう使えばいいのかということもわかりました。
本当にありがとうございます!

お礼日時:2020/02/18 13:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!