
前提
PostgreSQL の設計における varchar の最大文字数の決定することを検討中
実現したいこと
SQLやディスクの気持ちになって最大文字数を決定したい
知りたいこと
UTF-8 で日本語を使った文字列を varchar 型として格納したいのですが、例えば varchar(20) とした場合、database ファイルには
・データ未格納時 = 領域を確保しない
・日本語10文字(30bytes)のデータ格納時 = 30bytes の領域を確保し保存
・データ削除時 = その領域をリリース
という理解であっているでしょうか?
そうすると何のため varchar で最大文字数を決めるのか意義が分からなくなり、もしかしたらデータ格納時にバイト数分確保するのかな?とも思いましたが、そうすると UTF-8 は 4-bytes 文字もあるので4 bytes 分を確保しなければなりませんし、それは無いかな、と思い。
じゃあ text 型と比べて検索パフォーマンスが違うのかな、とも考えましたが、調べた感じはっきりしませんでした。(大差無い、というような記述もありました。)
0 コメント