ホームページ > データベース > mysql チュートリアル > Base64 エンコーディングを使用して UUID ストレージを最適化するにはどうすればよいですか?

Base64 エンコーディングを使用して UUID ストレージを最適化するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-20 09:52:10
オリジナル
355 人が閲覧しました

How Can I Optimize UUID Storage Using Base64 Encoding?

Base64 を使用した最適化された UUID ストレージ

UUID を Base64 に変換し、末尾の「==」を削除するという元のアプローチでは、22 バイトになります。弦。これはスペースを節約する手法ですが、UUID の可読性と互換性を損なう可能性があります。

より堅牢なアプローチには、UUID のコンパクトな Base64 表現への変換をサポートする UUID ライブラリを使用することが含まれます。このようなライブラリは、不要なパディングや末尾の文字を使用せずに、UUID の最上位ビットと最下位ビットを Base64 文字列にエンコードします。このメソッドは通常、UUID の人間が判読できる形式を維持しながら、約 26 ~ 30 文字の文字列を生成します。

このようなライブラリの例は、次の機能を提供する Apache Commons Codec です。

import org.apache.commons.codec.binary.Base64;

private static String uuidToBase64(String str) {
    Base64 base64 = new Base64();
    UUID uuid = UUID.fromString(str);
    ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
    bb.putLong(uuid.getMostSignificantBits());
    bb.putLong(uuid.getLeastSignificantBits());
    return base64.encodeBase64URLSafeString(bb.array());
}

private static String uuidFromBase64(String str) {
    Base64 base64 = new Base64(); 
    byte[] bytes = base64.decodeBase64(str);
    ByteBuffer bb = ByteBuffer.wrap(bytes);
    UUID uuid = new UUID(bb.getLong(), bb.getLong());
    return uuid.toString();
}
ログイン後にコピー

このアプローチを使用すると、整合性を維持しながら、バイト数を減らして UUID を Base64 文字列に変換できます。互換性。

以上がBase64 エンコーディングを使用して UUID ストレージを最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート