MySQLのvarchar(10)は10バイトではなくて10文字

文字列型に設定された桁数(長さ)はバイト数ではなくて文字数です。

先入観でずっとバイト数だとばかり思ってましたよ。

UTF-8などのマルチバイトも関係なく文字数の大きさになります。
なのでUTF-8なので一文字3バイト~などと考えなくてもいいわけです。

ただし、正しい文字コードが設定されている場合に限ります。