整数をネットワークの順序に変換し、結果のバイトを文字列データベースのインデックス可能なエンティティに書き込むという常識は見ていませんそのようなデータベースのドキュメンテーションのどこにでも番号の文字列表現を書く。ビッグエンディアンのバイトと文字列データベースのキーとしての文字列
文字列として64ビットintをデータベースに書き込む場合のオーバーヘッドは、バイトを整数型に書き戻す前にntohl
呼び出しを行う必要があるという単純な複雑さよりも重要です。
ここで何かが欠けていますが、ビッグエンディアンバイトと文字列文字列データベースのインデックス可能エンティティとしての文字列の違いは何ですか?
(プログラム型のメモリ位置にバイトを書き込むことについてはC++/Cタグ、BDBは使用しているデータベースであるため、kyotodbも可能です)。
私はあなたが言っていることを読むでしょう。アーキテクチャに互換性のあるネイティブデータ型がない場合。しかし、 'boost :: lexical_cast(std :: string)'のようなものも可能です。私はそのような変換がある古い学校のハードウェアでは高価すぎることが判明するかもしれないと思う。 –
値を変換することは、物事のスキームにおいて非常に高価な操作であることはまずありません。 (boost :: lexical_castは最適な方法ではありませんが、大量の結果セットを変換している場合など、パフォーマンスの問題が発生する可能性があります)。 – CashCow
私は昇順の並べ替え順序と大きさと速度の改善が無視するのが良いと結論していると思いますか? :問題のデータベース技術(具体的にはBDB)は、実際には 'recno'モードで32ビット整数でしか機能できません(おそらくネイティブが意味するものです)。あなたの答えをもう少し積極的に編集した場合(つまり、データベースにインデックス可能な値として使用するネイティブタイプがない場合、文字列に埋め込まれたビッグエンディアンの整数バイトが文字列表現より優れています)私はそれを受け入れます:D 。 –