ハマログ

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

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   kaneko tomo   2018年3月19日


関連記事

EコマースのオープンソースMagentoをXAMPPにインストール

こんにちは。S.Iです。 この度新規案件でMagentoのXAMPP for W…

laravel5.4で数値かつ桁数チェックを実装

laravel5で数値かつ250桁数チェックをしたいと思い、 ‘test’ =&…

Laravelとは..?! このフレームワーク流行ってるの?

はい、どーも! 今年2016年4月からイーツー・インフォで働き始めました、てるお…


← 前の投稿

次の投稿 →