並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 58件

新着順 人気順

UUIDの検索結果1 - 40 件 / 58件

  • PostgreSQL and UUID as primary key

    UUIDs are often used as database table primary keys. They are easy to generate, easy to share between distributed systems and guarantee uniqueness. Considering the size of UUID it is questionable if it is a right choice, but often it is not up to us to decide. This article does not focus on "if UUID is the right format for a key", but how to use UUID as a primary key with PostgreSQL efficiently. P

      PostgreSQL and UUID as primary key
    • UUIDv7 in 32 languages

      UUIDv7 is a 128-bit unique identifier like it's older siblings, such as the widely used UUIDv4. But unlike v4, UUIDv7 is time-sortable with 1 ms precision. By combining the timestamp and the random parts, UUIDv7 becomes an excellent choice for record identifiers in databases, including distributed ones. Let's briefly explore the UUIDv7 structure and move on to the zero-dependency implementations i

        UUIDv7 in 32 languages
      • ソートできるUUID v7をJavaで使うときの話

        JJUG CCC 2024 Spring の発表資料です

          ソートできるUUID v7をJavaで使うときの話
        • UUIDとULIDを理解していない方は見た方がいい記事

          Auto increment(自動採番)型を採用したくない場合 Auto Incrementは、データベースにおいて自動的に一意の識別子を生成するメカニズムです。通常、数値型の列が対象となり、新しいレコードが挿入されるたびにその列の値が自動的にインクリメントされます。典型的なIDですかね。 ここでは一意性の確保の話や、データ移行やバックアップのデメリットには言及せず、セキュリティとプライバシーの懸念にフォーカスして考えます。 予測可能性 Auto Increment型のIDは連番であるため、次に生成されるIDが容易に予測可能です。これにより、攻撃者がシステムの内部構造を推測し、不正アクセスを試みるリスクが高まります。 情報漏洩のリスク 連番のIDはデータベースの挿入順序を反映しているため、公開されることで企業の活動パターンやデータ生成の頻度が漏洩する可能性があります。 例) 競合他社は、公

            UUIDとULIDを理解していない方は見た方がいい記事
          • RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)

            結論 お手軽モノリスならAutoIncrementが効率的だしこれでいいよ アプリケーション側で主キーを生成したい場合はLUIDを作る必要があるよ。GUIDで大は小を兼ねよう 主キーでGUIDを使うならULIDよりもUUIDv7がおすすめだよ ただし分散されているエンジンによってはUUIDv4の方が効率的になる場合もあるよ 主キーは原則公開しない方がいいよ UUIDv7やULIDはユニーク性を持ったInstant(timestamp)としても使えるよ 分散されたシステムでは厳密な時系列性を担保することはできないよ、あきらめてロックをかけつつ連番を一か所で生成しよう RDBのPrimary Key(主キー)とは? MySQL、PostgresQLなどのRDBでは各レコードを識別するために一意な値を必要とします。これをPrimary Key(主キー)と呼びます。別のカラムにUNIQUEなInd

              RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)
            • RFC 9562: Universally Unique IDentifiers (UUIDs)

               Internet Engineering Task Force (IETF) K. Davis Request for Comments: 9562 Cisco Systems Obsoletes: 4122 B. Peabody Category: Standards Track Uncloud ISSN: 2070-1721 P. Leach University of Washington May 2024 Universally Unique IDentifiers (UUIDs) Abstract This specification defines UUIDs (Universally Unique IDentifiers) -- also known as GUIDs (Globally Unique IDentifiers) -- and a Uniform Resou

                RFC 9562: Universally Unique IDentifiers (UUIDs)
              • PCで乱発する謎のバグは同一ネットワークに接続されているHiSense製Android TVが原因であることが明らかに

                サウンドデザイナーでコンポーザーのプリシラさんが、長期間にわたって苦しんできたPC上で発生する謎のバグが、PCと同じネットワークに接続されているHiSense製Android TVが原因だったと報告しており、「HiSense製TVは買うな」と警告しています。 cohost! - "DO NOT BUY HISENSE TV'S LOL (Or at least keep them offline)" https://cohost.org/ghoulnoise/post/5286766-do-not-buy-hisense-t プリシラさんが自宅で使用しているWindows 11搭載PCは、長らく問題を抱えていたそうです。その問題のひとつが「ディスプレイ設定を開けない」というものでした。そのため、プリシラさんはディスプレイの表示を調整するために、Windows 11のディスプレイ設定ではなく

                  PCで乱発する謎のバグは同一ネットワークに接続されているHiSense製Android TVが原因であることが明らかに
                • MySQLでUUIDv4をプライマリキーにするとパフォーマンス問題が起きるのはなぜ?(N回目)

                  はじめに こんにちは、令和トラベルでバックエンドエンジニアをしている飯沼です。 MySQLでは、UUID (v4)などのランダム性の高いIDをプライマリキーに設定すると、パフォーマンスが低下すると言われています。私自身もこの問題については認識しておりアンチパターンとして避けて来ましたが、イマイチ理由を理解できず何度も調べていたので自分の理解を整理しました。 ※ この記事は令和トラベルのTech LT会で共有した内容を記事にしたものです。社外の方にもご参加いただけるTech LT会は connpass にて告知しています。 UUIDをプライマリキーにするユースケース そもそもUUIDをプライマリキーにするユースケースはどのようなものがあるのでしょうか? いくつかの観点から考えてみます。 パフォーマンス観点 大量の同時書き込みが発生するような状況でauto incrementを利用してIDを発

                    MySQLでUUIDv4をプライマリキーにするとパフォーマンス問題が起きるのはなぜ?(N回目)
                  • UUIDなのにデータベースのプライマリキーに設定してもパフォーマンスの問題を起こさない「UUIDv7」の標準化作業が進行中

                    UUIDは「Universally Unique Identifier」の略称で、世界中のどこにも重複が存在しない唯一のIDという特徴があります。UUIDには歴史的な経緯によっていくつかのバージョンが存在していますが、2023年10月時点で標準化の作業が進行中のv7についてCI/CDサービスを提供する企業のBuildkiteが解説しています。 Goodbye to sequential integers, hello UUIDv7! https://buildkite.com/blog/goodbye-integers-hello-uuids UUIDは128ビットの数字で、大部分をランダムに作成することで重複する確率を限りなくゼロに近づけており、実質的に世界中のどこにも存在しない唯一のIDとみなせるようになっています。しかし、完全に数値がランダムのためプライマリキーとして使用するとデータ

                      UUIDなのにデータベースのプライマリキーに設定してもパフォーマンスの問題を起こさない「UUIDv7」の標準化作業が進行中
                    • Goodbye to sequential integers, hello UUIDv7!

                      At Buildkite, we've historically stored our data with two keys. We use sequential primary keys for efficient indexing, and UUID secondary keys for external use. The upcoming UUIDv7 standard offers the best of both worlds; its time-ordered UUID primary keys can be utilized for indexing and external use. This blog post will take you on the journey Buildkite took that led to our eventual adoption of

                        Goodbye to sequential integers, hello UUIDv7!
                      • 第779回 Raspberry Pi Zero 2 WでBluetoothを使えるようにする | gihyo.jp

                        第777回では、Raspberry Pi Zero 2 WにUbuntuをインストールする方法を紹介しました。その際に、「⁠Bluetoothはうまく動かなかった」と説明しましたが、今回はそのBluetoothの認識方法とその使い方を説明しましょう。 図1 Raspberry Pi Zero 2 WにBluetoothオーディオデバイスを接続して、楽曲を再生してみる Raspberry PiのBluetooth対応 第777回では、Ubuntuを起動してもBluetoothデバイスが見えないという話をしました。 $ bluetoothctl show 何も表示されない 実はこれは「まったく見えない」というわけではなく、「⁠何度か再起動すると見えたり・見えなかったりする」なんて、特定の業種の人にとっては胃がキリキリするかもしれない挙動を示すのです。まずはここからなんとかしましょう。 Ubun

                          第779回 Raspberry Pi Zero 2 WでBluetoothを使えるようにする | gihyo.jp
                        • GitHub - jetpack-io/typeid: Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs

                          You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                            GitHub - jetpack-io/typeid: Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs
                          • PostgreSQLのプライマリーキーはSERIALとUUIDのどっちが速いのか実験してみた - Qiita

                            注意 この記事の実験は実際の運用を正確に反映していない恐れがあります(コメント欄の @hmatsu47 さんの投稿を参照)。 実務のアプリケーションでは異なる結果になる可能性もあるので、本記事の内容はあまり鵜呑みにせず参考程度に留めておいてください。 ※「実務に近い環境で実験してみた」という投稿もお待ちしています! はじめに データベース(この記事ではPostgreSQLを対象とします)の主キーは1,2,3のような連番の整数値を主キーにするSERIALと、"00009236-b73c-4338-8ebd-e1f6c4f4fdd8"のようなランダムな文字列を主キーにするUUIDがあります。 それぞれメリットとデメリットがありますが、パフォーマンスについてはどうでしょうか?なんとなくSERIALの方がシンプルなぶん、速そうなイメージがありますが、実際はどうなのか調べてみました。 実行環境 Ma

                              PostgreSQLのプライマリーキーはSERIALとUUIDのどっちが速いのか実験してみた - Qiita
                            • ULIDs and Primary Keys

                              When it comes to picking the type for your database's primary keys, there are a few divided camps. When making this decision for Visibuild I had to choose between the simplicity of sequential IDs and the longevity/future benefits of non-sequential IDs. I chose non-sequential IDs to make it easier to deal with sharding and regional databases in the future. Out of the many flavours of non-sequential

                                ULIDs and Primary Keys
                              • 一部で話題になったUUIDのv6/v7/v8のドラフトRFCですが、1年ほど前からGitHubでの議論に参加しています。日本人で首を突っ込んでる人はあまりいなさそうなので、現状について日本語でも少しまとめておきたいと思います

                                LiosK @LiosK 一部で話題になったUUIDのv6/v7/v8のドラフトRFC ietf.org/archive/id/dra… ですが、1年ほど前からGitHubでの議論に参加しています。日本人で首を突っ込んでる人はあまりいなさそうなので、現状について日本語でも少しまとめておきたいと思います 2022-11-03 19:30:03 LiosK @LiosK 議論に参加したのは以前のドラフトを元にプロトタイプを実装したときにいくつかフィードバックを送ったのがきっかけで、以降1年間ほどの議論はだいたい追いかけています。逆に、それ以前の動きはあまり追えていません。議論自体は数年間続いているので、それ以前にもいろいろとあったと思います 2022-11-03 19:30:04 LiosK @LiosK まずドラフトのステータスですが、以前日本語でも話題になった asnokaze.haten

                                  一部で話題になったUUIDのv6/v7/v8のドラフトRFCですが、1年ほど前からGitHubでの議論に参加しています。日本人で首を突っ込んでる人はあまりいなさそうなので、現状について日本語でも少しまとめておきたいと思います
                                • https://twitter.com/LiosK/status/1588116287422877697

                                    https://twitter.com/LiosK/status/1588116287422877697
                                  • UUID v6, v7, v8 : タイムスタンプでソートできる新しい UUID のドラフト仕様 - kakakakakku blog

                                    ID を採番するときによく使われる UUID Version 4 の課題として「順序性がなくソートしにくい」という側面があり,ULID (Universally Unique Lexicographically Sortable Identifier) を使えばソートできるようになるという記事を前に書いた. kakakakakku.hatenablog.com 関連して調査をしていたら,標準化団体 IETF (Internet Engineering Task Force) によって,UUID Version 6, 7, 8 という新しい仕様が提案(ドラフト段階)されていることを発見した❗️UUID Version 6, 7, 8 の目的を簡単にまとめると「タイムスタンプ情報を使ってソートできる ID を採番できるようにする」となり,もしこの仕様が取り込まれると,UUID を活用する幅がさ

                                      UUID v6, v7, v8 : タイムスタンプでソートできる新しい UUID のドラフト仕様 - kakakakakku blog
                                    • UUIDv6~UUIDv8と uuidrev の動向 - ASnoKaze blog

                                      UUIDの新しいフォーマットとしてversion6~version8を追加する提案がIETFで行われていることは、以前記事で取り上げたとおりです。 asnokaze.hatenablog.com その後、IETFでRevise UUID WGが立ち上がるなど、標準化に向けて動きがあったので簡単に紹介する (今回は、具体的なUUIDv6~UUIDv8 の紹介は割愛する) uuidrev 今年の8月、Revise UUID WG (uuidrev) が立ち上がりました。このWGの主な作業領域は次のとおりです。 UUIDを定義した RFC4122 を改訂し、既存のエラッタを治す 改訂版仕様にUUIDv6~UUIDv8 を組み込む なお、これらの作業のマイルストーンとして2023年3月にIESGに提出することが掲げられています。 WG設立の流れは、7月に行われたIETF114の議事録に議論の様子が

                                        UUIDv6~UUIDv8と uuidrev の動向 - ASnoKaze blog
                                      • データベースでユニークキーにUUIDを使うメリットは何ですか?連番やタイムスタンプまたは複合などではいけないのでしょうか?どうも視認性が悪く使いにくく感じますし連番でも衝突しない気もします。

                                        回答 (7件中の1件目) まずはUUID及びその対案として用いられる連番(自動採番)のメリット・デメリットを整理します。 (タイムスタンプキーや複合キーなどもその効率性から設計上有用なシーンはありますが、比較から除外します。) * UUIDを使うことのメリット * * データベースにSQLを送信する前からアプリケーションレイヤーでIDを生成できる。 * * トランザクション処理を実装しやすい場合がある。 * IDを推測しにくい。リソースが列挙可能ではない。 * UUIDを使うことのデメリット * * レコード・インデックスサイズが増加する。 * * ...

                                          データベースでユニークキーにUUIDを使うメリットは何ですか?連番やタイムスタンプまたは複合などではいけないのでしょうか?どうも視認性が悪く使いにくく感じますし連番でも衝突しない気もします。
                                        • 一意な識別子の生成でUUID/ULID/CUID/Nano IDなど検討してみた - Sweet Escape


                                            Identifier, idRDB使id DB  UUID UUID ULID CUID Nano ID TwitterSnowflakeDeprecatedshortid4UUIDSpec4
                                            一意な識別子の生成でUUID/ULID/CUID/Nano IDなど検討してみた - Sweet Escape
                                          • Postgres と MySQL における id, created_at, updated_at に関するベストプラクティス

                                            読者対象 ある程度データベースに関する知識を持っている,経験年数 1 年以上のバックエンドエンジニア 特定のプログラミング言語に依存する部分は含めないため,すべての SQL 使用者を対象とする また,ゼロからの丁寧な説明というよりは,リファレンス感覚で使える記事という形にまとめる。 RDBMS の対象バージョン PostgreSQL: 9.4 以降 MySQL: 8.0.28 以降 id (データ型と INSERT 時のデフォルト埋め) 導入 一般的に採用されやすいプライマリキー用の値として,以下を考える。 連番整数 MySQL では AUTO_INCREMENT, Postgres では IDENTITY や SERIAL と呼ばれるもの UUID v1: ハードウェアごとにユニークな単調増加値 UUID v4: ランダム値 UUID v7(ドラフト): 単調増加であるタイムスタンプとラ

                                              Postgres と MySQL における id, created_at, updated_at に関するベストプラクティス
                                            • New UUID Formats

                                              New UUID Formats Abstract This document presents new Universally Unique Identifier (UUID) formats for use in modern applications and databases.¶ Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working doc

                                              • GitHub - scru128/spec: SCRU128 Specification

                                                SCRU128 ID is yet another attempt to supersede UUID for the users who need decentralized, globally unique time-ordered identifiers. SCRU128 is inspired by ULID and KSUID and has the following features: 128-bit unsigned integer type Sortable by generation time (as integer and as text) 25-digit case-insensitive textual representation (Base36) 48-bit millisecond Unix timestamp that ensures useful lif

                                                  GitHub - scru128/spec: SCRU128 Specification
                                                • Windowsのレジストリなどに見られるGUIDとは? (1/2)

                                                  Windowsのレジストリなどを見ると、波カッコ「{}」に囲まれた16進数の羅列を見ることがある。これをGUID(Globally Unique Identifier)という。GUIDは、Windowsでユニークな識別子として使われる128bit(16バイト)の数値である。GUIDは、WindowsのAPIで作成することができ、他のマシンで作られたGUIDであっても、衝突することが極めてまれで、事実上起こらないと考えてもよいレベルのものだ。 Windows Terminalではプロファイルの識別にGUIDを利用している。GUIDは多くの場合、波カッコに囲まれた5つの16進数として表示される Windowsでは、オブジェクトやクラスの定義などに使われる。数値なので比較が容易で検索処理などを高速化できる。 このGUIDは、UUIDと呼ばれる識別子の一種だ。Windowsでは、UUIDの一部をG

                                                    Windowsのレジストリなどに見られるGUIDとは? (1/2)
                                                  • SQLアンチパターン簡単まとめ

                                                    「SQLアンチパターン」について、自分の勉強がてら内容を簡単にまとめました。 「とりあえずSQLは触れてWebアプリが作れる」「シンプルなアプリを実務で作ったことがある」くらいの人が読むととても勉強になると思います。 また、「現場での良くない設計」が詳細に言語化されているので、経験豊富な人でも新たな発見があると思います。 詳しく知りたい方は是非本を買って実際に読んでみて欲しいです。 第一章 ジェイウォーク パターン 1カラムにコンマ区切りで値を入れて複数の紐付きを表現しようとする なぜダメか 検索しづらい 文字列カラムの文字数制限という暗黙の制約を受ける バリデーションかけられない 解決策 交差テーブルの作成 第二章 ナイーブツリー パターン 木構造を表現するとき、常に親のみに依存する(parent_idだけ持ってしまう) 隣接リスト なぜダメか 階層を深く掘ろうとするとそのぶんSQLをか

                                                      SQLアンチパターン簡単まとめ
                                                    • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし


                                                      id:shallow1729MySQL 2022MySQLrails使  
                                                        データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
                                                      • エンティティの識別子に ULID を使ってみよう

                                                        エンティティの識別子の生成タイミング問題 DDD[1]では,一意な識別子を持ち,その識別子によって識別できるモデルをエンティティ (Entity) として表現します.このエンティティの識別子の生成方法には様々な種類がありますが,大きく分けて永続化前に生成する早期生成と永続化後に生成する遅延生成の2種類に分けられます. エンティティの識別子の生成に遅延生成を用いると本来 Not Null な識別子を Nullbale として扱う必要性が生じてしまいます.これを避けるのであれば,早期生成を採用すると良く,IDDD本[2]などではUUIDやGUIDをアプリケーション側で生成し識別子に用いる例が紹介されています. しかし,技術的な問題でUUIDなどのランダムな値を識別子として採用しづらいケースも存在します.たとえば,MySQL (InnoDB) ではプライマリキーにランダムな値を用いるとINSER

                                                          エンティティの識別子に ULID を使ってみよう
                                                        • 【WEB】UUIDとULIDの違いって?(’21 6月更新) - 小さなことからこつこつと。

                                                          似て非なるもの多すぎ問題 UUIDとULIDの違い UUID(Universally Unique Identifier) ULID(Universally Unique Lexicographically Sortable Identifier) よくわからない ソートの可否(’21 6月追記) UUID ULID 一意性にかわりない 参考URL 違いシリーズ第三弾! 第一弾と第二弾はこちら↓。(シリーズ化するつもりもない) bonoponz.hatenablog.com bonoponz.hatenablog.com 似て非なるもの多すぎ問題 いや、多いのよまじで。 故に、初心者にとって単語が理解できずに話についていけないシーン多いです。似た単語の違いを調べることがまだあるかもしれないので、先にシリーズ化を予兆する。 UUIDとULIDの違い 根本的には同じものなのかもしれない、と調べ

                                                            【WEB】UUIDとULIDの違いって?(’21 6月更新) - 小さなことからこつこつと。
                                                          • idをautoincrementして何が悪いの?

                                                            idをautoincrementしない方が良い理由 こんにちは。株式会社プラハCEOの松原です。 最近プラハチャレンジの参加者とお話している際に 「PKのidはautoincrementするとして...」 とナチュラルにid=autoincrementするものという前提が見えたので、「本当にidをautoincrementしても良いものだろうか?」と気になったことを書いてみようと思います。もしフレームワークが自動的にautoincrementでテーブルを作るからなんとなく使っているという方がいたらご一読いただいた後、それでも連番を使いたい理由があれば教えて欲しいです・・! 不必要に情報を晒すことになる スクレイピングされたり もしも僕が某大手に勤めているエンジニアで「競合サービスAにのってる物件情報、全部コピーして新しいサービス作ろうぜ」と指示されたらですよ?「人としてそれはやっちゃダメで

                                                              idをautoincrementして何が悪いの?
                                                            • エンジニアのための十徳ナイフ「DevToys」が便利すぎる - Qiita

                                                              DevToysとは デベロッパーのためのスイスアーミーナイフの紹介文の通り。 開発時によく使うツールを十徳ナイフのようにまとめたアプリになっています。 JSONの整形とかエンコードデコードetc... プログラミングや保守運用の調査でやりがちな作業をいちいち変換サイトを探したり、エディター拡張機能のショートカットを探したりせずとも、これ一つですぐにできます! インストール Microsoft Storeからインストールできます。 公式サイトからストアへのリンクを踏むか、ストア検索して見つけてください。 WinGetやChocolateyでもインストール可能です。 Microsoft StoreアプリなのでWindowsでしか使えませんが、Macユーザーの方は気を落とさずにこちらの記事をどうぞ! また、作者曰くMacにはDevBoxやDevUtilsなどの類似ツールが既にあるため非対応だそう

                                                                エンジニアのための十徳ナイフ「DevToys」が便利すぎる - Qiita
                                                              • Node.js と ID について - Qiita

                                                                [ English Version ] 2020年の 「Promise のキャンセルについて」ブログ記事に続き、これもまた基本的なトピックとして深く掘り下げていきたいと思います。 アイデンティティ(略称ID)、つまりあるものを識別する方法は、ほとんどのツールがすぐに提供してくれるので、普段考える必要はありません。しかし、私たちはユーザーのために作っているのです。人間です。ID は、URL であったり、レシートであったりと、ユーザーの目に触れることが多く、そのときにIDの形が実際の違いを生むことがあります。 この記事を読んでいただければ、このトピックが魅力的であることに同意していただけると思います。その後、あなたはIDを同じように見ることができなくなるに違いありません。 この記事のコードは、関連する github レポ に掲載されています。 Classic ID's, auto increm

                                                                  Node.js と ID について - Qiita
                                                                • Redisを使ったID生成は本当にReliableなのか? LINEアプリにおけるID生成の問題と解決法

                                                                  2021年11月10日と11日の2日間、LINE株式会社が主催するエンジニア向け技術カンファレンス「LINE DEVELOPER DAY 2021」がオンラインで開催されました。そこで井出氏が「LINEアプリにおけるScalableなマルチデータ センターIDジェネレーター」というテーマで、メッセージングアプリにおけるID生成の方法を共有しました。 メッセージングアプリのシステム図 井出真広氏:こんにちは。LINE Platform Development Center1のチームで、メッセージング機能の開発、ストレージの運用を行っている井出と言います。本日は、LINEアプリにおいて、ID生成をどのように行っているのかを紹介します。 はじめに、この発表の対象となる我々のLINEアプリについて、簡単に紹介します。我々のLINEアプリは、現在約2億人のアクティブユーザーがいて、1日にこれらのユー

                                                                    Redisを使ったID生成は本当にReliableなのか? LINEアプリにおけるID生成の問題と解決法
                                                                  • ISUCON11 予選問題の解説と講評 : ISUCON公式Blog


                                                                    2021.09.18 18:44 MariaDBDESC --- ISUCON11  Mahito   ISUCON11 ISUCONDITIONISUCON11 NTT - kanataMahitotraP - eiyaoriberyoha - okimoto tabuchi 7 ISUCONDITION ISUCON11 ISU () ISU 
                                                                      ISUCON11 予選問題の解説と講評 : ISUCON公式Blog
                                                                    • PHP UUID version4 を生成する - Qiita

                                                                      <?php declare(strict_types=1); /** * UUID version 4 */ class UuidV4Factory { const PATTERN = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'; /** * UUID 生成 * @return string * @throws \Exception */ public static function generate(): string { $chars = str_split(self::PATTERN); foreach ($chars as $i => $char) { if ($char === 'x') { $chars[$i] = dechex(random_int(0, 15)); } elseif ($char === 'y') { $chars[$i]

                                                                        PHP UUID version4 を生成する - Qiita
                                                                      • New UUID Formats

                                                                        New UUID Formats Abstract This document presents new Universally Unique Identifier (UUID) formats for use in modern applications and databases.¶ Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working doc

                                                                        • MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]


                                                                          / bashMySQLInnoDBDB   MySQL  UUID  MySQL(InnoDB) & UUID  UUID / MySQL  InnoDB 
                                                                            MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
                                                                          • UUIDを重複させるにはどれだけ時間がかかるのか試してみた

                                                                            絶対に重複しないといわれるUUID UUIDとはUniversally Unique Identifier の略で、「Universally」つまり将来にわたって重複や偶然の一致が起こらないという前提で使われるIDのことです。 128ビットで表現されるUUIDは2^128通り(Version 4では固定値があるため2^122通り)あり、その膨大なパターンから将来に渡って重複しないとされています。その特性から、ファイルのハッシュ値に使われたり、DBのキーに使われたりしています。重複しないことが約束されているので、大変使い勝手が良いのです。 とはいえ、有限桁数である以上は重複が発生する可能性がごく僅かながら存在します。 では実際に重複させるには、どれだけUUIDを作らないといけないのか試してみます。 まずは計算で目算をつける x通りのパターンがあるとき、衝突回数がpになるときの試行回数nは以下

                                                                              UUIDを重複させるにはどれだけ時間がかかるのか試してみた
                                                                            • 時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog

                                                                              IETFに「New UUID Formats」という提案仕様が提出されています。 これは、時系列順にソート可能なUUID version 6, UUID version 7, UUID version 8を新しく定義するものです。 詳しい背景は提案仕様にゆずりますが、ULIDを始めとして、時系列順にソート可能な一意な識別子を利用したいというユースケースがあります。例えば、データベースのキーとして使えば、ソートせずとも順番に並びますし、書き込む際も順々に書き込めるのでデータアクセスが局所的になります。 今回は簡単に、それぞれのUUIDのフォーマットを眺めていきます。なお、フォーマットは異なりますが、バージョンを示す値は同じ位置にあります。 UUIDv6 UUIDv6は128bit長で、UUIDv1と似てるフォーマットを取ります。 1582年10月15日(グレゴリオ暦)からの100ナノ秒単位で

                                                                                時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog
                                                                              • MySQL InnoDBにおけるPKにUUIDを使ったINSERTのパフォーマンスの調査 - CubicLouve

                                                                                下記の記事を見て、PKにUUIDを使った際に内部的にどうなっているのかを確認してみました kccoder.com 比較対象として、PKにULIDを使った場合も調べてみました。 github.com ULIDはUUIDと互換性がある、ソート可能な識別子です。 MySQLのバージョン % mysql --version mysql Ver 8.0.19 for osx10.14 on x86_64 (Homebrew) スキーマ mysql> SHOW CREATE TABLE innodb_auto_increment\G *************************** 1. row *************************** Table: innodb_auto_increment Create Table: CREATE TABLE `innodb_auto_incr

                                                                                  MySQL InnoDBにおけるPKにUUIDを使ったINSERTのパフォーマンスの調査 - CubicLouve
                                                                                • 世界でたったひとつの識別子として活用される「UUID」はどのように生成されているのか

                                                                                  オンライン対戦システムやランキングシステムの都合などで「世界中で唯一の値である識別子」をサーバーに接続せずに作成する必要がある場合があり、そうした場合に活用されるのが「UUID」です。そのUUIDの性質について、エンジニアのアリアマン・シャーダさんが解説しています。 Understanding How UUIDs Are Generated - Digital Bunker https://digitalbunker.dev/2020/09/30/understanding-how-uuids-are-generated/ UUIDは世界中で重複がないユニークな値となるよう設計されており、さらにその一意性が中央サーバーなどの要素に依存しないようになっています。こうした特徴をもつUUIDをデータベースの主キーに利用すると他人のデータベースと結合したり、データを別のデータベースに移動したりする

                                                                                    世界でたったひとつの識別子として活用される「UUID」はどのように生成されているのか