現在、自分の画像サイトに、一意の $imgid に対してユーザー IP をデータベースに保存する好きな機能があります。
現在、IP は文字列として保存されています。スペースを節約するために、IP を小数点付きの文字列としてではなく、32 ビット整数として格納したいと思います (文字列内の整数ごとに 1 ビット対文字ごとに 1 バイト)。n個の一意のIPがx個の画像を好む可能性があるため、これによりかなりのスペースを節約できると思います...
したがって、指定された文字列「109.181.156.221」は、数値の最大 12 バイト + 小数点あたり 3 バイトになります... 15 バイト * 5000 IP * 10 イメージ ID = 7.1 Mb
対 32 ビット 109181156221、4 バイト * 5000 IP * 100 イメージ ID = 2 Mb
したがって、IP を挿入する前に、正規表現を使用して小数を削除し、IP を数値として保存したいと思います... "109.181.156.221" -> 109181156221 正規表現は初めてですが、これを試しましたが、うまくいきません:
$ipINT = preg_replaceAll("\\.+$", "" , $ipString);
だから私の質問は:
1) スペースの節約は、Mysql データベースでも問題になりますか? これは苦労する価値がありますか?
2) 正規表現でどこに行ったのですか?
3) 読み込もうとしている場合、元に戻すことはできますか?
何かご意見は?
ありがとう!