Firebird 2.0
重い腰を上げて、Firebird2を少し触ってみた。
今回のバージョンアップで注目していたのがインデックス最大サイズの拡張。
今までは最大252byteで、UNICODE_FSSみたいに1文字3byteだと最大84文字。これは少ない。
なんとなく軽く255文字くらいは欲しい感じがする。
これが2.0ではページサイズによってインデックスの最大長が決定する仕様に。やった。
でも、ここで勘違いがひとつ。
てっきりインデックスの最大サイズ=ページサイズだと思っていましたが違いました。
どうやら、最大インデックスサイズは以下の数式で求められる値の模様。
最大インデックスサイズ = ページサイズ / 4 - 4
そして以外だったことがもう一つ。
UTF8が1文字4byteだった。
これは、Unicode4.0がサポートされたからなのだろうか。
でも、UNICODE_FSSは3byteのまま。
リリースノートを見ると
The UNICODE_FSS character set has a number of problems: it's an old version of UTF8 that accepts
malformed strings and does not enforce correct maximum string length. In FB 1.5.X UTF8 is an alias
to UNICODE_FSS.
Now,UTF8 is a new characterset, without the inherent problems of UNICODE_FSS.
とある。
これは、UNICODE_FSSは使うなということかな。
教えて偉い人。
となると、標準のページサイズは4096だから、文字コードにUTF8を使った場合、インデックスをはれる最大文字数は1020/4で255文字。
うーん思ったよりは少ないけれど、まぁいいか。
必要ならページサイズの変更も考えるべしと。
以下 備忘録
Page Size | Max Key Size | SJIS or EUC | UTF8 |
---|---|---|---|
1024 | 252 | 126 | 63 |
2048 | 508 | 254 | 127 |
4096 | 1020 | 510 | 255 |
8192 | 2044 | 1022 | 511 |
16384 | 4092 | 2046 | 1023 |