ハマログ

株式会社イーツー・インフォの社員ブログ

Laravel5.6のUUID Methodsについて

はじめに

Laravel5.6で、UUIDを生成するメソッドが実装されました (いままでなかったっけ?)

公式より
UUID Methods
Laravel 5.6 introduces two new methods for generating UUIDs: Str::uuid and Str::orderedUuid. The orderedUuid method will generate a timestamp first UUID that is more easily and efficiently indexed by databases such as MySQL. Each of these methods returns a Ramsey\Uuid\Uuid object:


use Illuminate\Support\Str;

return (string) Str::uuid();
return (string) Str::orderedUuid();
https://laravel.com/docs/5.6/releases

訳:Laravel5.6で、UUIDを作成する2つのメソッドがサポートされた。一般的なUUIDを作成するStr::uuidと、タイムスタンプをもとに作成される、インデックス可能なStr::orderedUuidメソッドがある。

つかってみた(How to Use)

Str::uuid()とStr::orderedUuid()

print Str::uuid();
print PHP_EOL;
print Str::orderedUuid();
結果
77be9a68-b31d-4ecc-aa9d-116f5b0b881e
8a607dff-44d3-4da4-9c2d-053e05790909
一見して、違いがよくわかりませんでした。
続いて、インデックス可能ということで、ソートしてみます。

Str::uuid()

for($i = 0; $i < 100; $i++) {
    $sample = new Sample();
    $sample->title = Str::uuid();
    $sample->save();
}
uuidでソートしてもidがばらばらになりました。uuidは完全にランダムに生成されるためです。

Str::orderedUuid()

for($i = 0; $i < 100; $i++) {
    $sample = new Sample();
    $sample->title = Str::orderedUuid();
    $sample->save();
}
こちらは、uuidでソートするとid順になりました。 ソートキーに利用可能 / DB Indexとして効率がよい / 最大値を求めることが可能などの利点があります。
とくに落ちはありませんが、使い所はありそうです
DBindexLaravelLaravel5.6Laravel56orderordered-uuidSortStrUDIDUUID

  kaneko tomo   2018年3月19日


関連記事

Laravel開発でREPLを使う

久しぶりにLaravelでのそれなりの規模の開発に携わることになりました。 以前…

Laravel 8 のメンテナンスモード

メンテナンスページの表示で、AWSでは以前の記事のようにALBを使って比較的簡単…

Laravel5事始め

Laravel4からLaravel5へ。 会社でのPHPスクラッチ開発ではLar…


← 前の投稿

次の投稿 →