並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 40件

新着順 人気順

uuidの検索結果1 - 40 件 / 40件

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

    株式会社ラクーンホールディングスのエンジニア/デザイナーから技術情報をはじめ、世の中のためになることや社内のことなどを発信してます。 bashパフォーマンスMySQLInnoDBDB設計インデックス こんにちは、羽山です。 今回は MySQL のプライマリキーに UUID を採用する場合に起きるパフォーマンスの問題を仕組みから解説します。 MySQL(InnoDB) & UUID のパフォーマンスについては各所でさんざん議論・検証されていますが、論理的に解説した記事が少なかったり一部には誤解を招くようなものもあるため、しっかりと理由から理解するための情報として役立つことができればと思っています。 UUID と比較される古き良き昇順/降順のプライマリキーはというと、 MySQL の InnoDB において良いパフォーマンスを出すために縁の下の力持ちのような働きをしてくれているケースが実は少な

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

      11/25(月) LT Party presented by GeekHub (大阪) エンジニア向けゆるいフリーテーマLT大会!

        10秒で衝突するUUIDの作り方
      • 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
        • 一意な識別子の生成でUUID/ULID/CUID/Nano IDなど検討してみた - Sweet Escape

          最近、一意な識別子について検討することがあったのでその検討メモ。 一意な識別子とは つまり、重複しない、ユニークな識別子(Identifier, 以下id)のこと。ここではRDBのテーブルにおける主キーとして使うことを想定かつ前提としている。したがって、主キーの要件であるユニーク性を持ったidをどうやって生成していくか。 そんなのDBの連番でいいじゃんて話もあるがここではその話はせず、あくまでも一意な識別子をどう生成するかの話に絞る。 選択肢 一番有名だと思われるUUIDを筆頭にいくつかの選択肢がある。 UUID ULID CUID Nano ID 他にもTwitter発のSnowflakeとか今はDeprecatedになってるshortidなどがあるが、キリがないのでここでは上記の4種類だけで簡単に比較した。また、実際にはUUIDはバージョンによってSpecが異なるがここではバージョン4

            一意な識別子の生成でUUID/ULID/CUID/Nano IDなど検討してみた - Sweet Escape
          • PostgreSQLのプライマリーキーはSERIALとUUIDのどっちが速いのか実験してみた - Qiita

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

              PostgreSQLのプライマリーキーはSERIALとUUIDのどっちが速いのか実験してみた - Qiita
            • UUID version 6の提案仕様 - ASnoKaze blog

              [2021/04/28追記] 新しく提案仕様が出たので、新しく記事を書きました asnokaze.hatenablog.com 先日IETFに提出された「UUID Format Update」という提案仕様の中でUUID version 6のフォーマットが言及されている。このDraftはUUIDを定義しているRFC4122を更新するものです。 ただ、まだIndividual Draftのdraft 00であり、この提案自体どうなるかは全くわからない点に注意が必要。 なお、UUIDv6自体はこの提案を行っているBrad G. Peabody氏が以前から取り組んでいた模様で、4年以上まえから案は存在していたようだ(URL)。またそのタイミングでサンプル実装も公開している。 UUIDv6 この提案仕様の中で、UUIDをデータベースのプライマリキーとして使用する際の課題をあげている。時系列順に並び

                UUID version 6の提案仕様 - ASnoKaze blog
              • UUIDを重複させるにはどれだけ時間がかかるのか試してみた

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

                  UUIDを重複させるにはどれだけ時間がかかるのか試してみた
                • 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」はどのように生成されているのか
                    • GitHub - uuid6/uuid6-ietf-draft: Next Generation UUID Formats

                      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 - uuid6/uuid6-ietf-draft: Next Generation UUID Formats
                      • The problem with using a UUID primary key in MySQL — PlanetScale

                        Universally Unique Identifiers, also known as UUIDs, are designed to allow developers to generate unique IDs in a way that guarantees uniqueness without knowledge of other systems. These are especially useful in a distributed architecture, where you have a number of systems and databases responsible for creating records. You might think that using UUIDs as a primary key in a database is a great id

                          The problem with using a UUID primary key in MySQL — PlanetScale
                        • 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」の標準化作業が進行中
                          • UUID Format Update

                            dispatch BGP. Peabody Internet-Draft February 24, 2020 Updates: 4122 (if approved) Intended status: Standards Track Expires: August 27, 2020 UUID Format Update draft-peabody-dispatch-new-uuid-format-00 Abstract This document presents a new UUID format (version 6) which is suited for use as a database key. A common case for modern applications is to create a unique identifier to be used as a primar

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

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

                                データベースでユニークキーにUUIDを使うメリットは何ですか?連番やタイムスタンプまたは複合などではいけないのでしょうか?どうも視認性が悪く使いにくく感じますし連番でも衝突しない気もします。
                              • 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

                                • GoでUUID4を生成するよ - Gunosy Tech Blog

                                  この記事は Gunosy Advent Calendar 2019 の24日目の記事です。 昨日の記事は@hongmhoonさんの iOSデバッグ中LLDBコマンドでUIView(Controller)を作って表示してみる でした。 はじめに 広告技術部のGunosyAdsチームの会田(@ryoaita)です。主にGoの広告の配信サーバーの開発を担当しています。 みなさんがお使いのGoのUUIDのライブラリはなんですか? 私は最近使っているのは github.com/gofrs/uuid です。 ネタに詰まったので、JavaScript向けのSDKで実装したことのあるUUID4の生成処理をGoで実装してみました。 UUID4ってなんだっけ? UUIDはコンピューターシステム上で一意に識別するためのIDです。UUIDの実体は128ビットの数値です。 我々がよく目にする xxxxxxxx-xx

                                    GoでUUID4を生成するよ - Gunosy Tech Blog
                                  • GitHub - tc39/proposal-uuid: UUID proposal for ECMAScript (Stage 1)

                                    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.

                                      GitHub - tc39/proposal-uuid: UUID proposal for ECMAScript (Stage 1)
                                    • uuid2のブックマーク - はてなブックマーク

                                      緊急事態宣言で飲食店への営業時間の短縮要請が続く中、都内では繁華街を中心に路上などで集まって飲酒する行為が問題となっています。東京新宿区はこうした「路上飲み」への対策として、高田馬場駅前...

                                      • 【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月更新) - 小さなことからこつこつと。
                                        • LaravelでプライマリーキーをUUIDにする | Hypertext Candy

                                          Laravelでは各テーブルのプライマリーキーがAUTO_INCREMENT、つまり自動連番であることを前提にModelクラスがデフォルト設定されていますが、この設定は簡単にカスタマイズすることができます。 UUIDのメリット はじめに、自動連番ではなくUUIDをプライマリーキーとして使う理由について簡単にコメントします。 自動連番の代わりにUUIDを使うと、複数のデータベースで分散してデータを持つ場合やデータを移行する場合にもプライマリーキーの重複を避けられます。 また、多くの場合URLの一部にIDを使用しますが、私が担当した案件でクライアント様から「IDの予測がつきにくくしてほしい」という要望を受けたこともありますし(/users/123 があるなら122番ユーザーもいるとバレる)、別の案件では新規サービス開発時に「投稿IDが3とかだったらまだ使われてない感が出て格好悪い」と言われたこ

                                          • MySQL UUID Smackdown: UUID vs. INT for Primary Key

                                            Home » MySQL Basics » MySQL UUID Smackdown: UUID vs. INT for Primary Key Summary: This tutorial introduces you to MySQL UUID, shows you how to use it as the primary key for a table, and discusses the pros and cons of using it as the primary key. Introduction to MySQL UUIDUUID stands for Universally Unique IDentifier. UUID is defined based on RFC 4122, “a Universally Unique Identifier (UUID) URN Na

                                            • 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

                                              • グローバルなid生成器(UUID v4とか)の比較 - ちりもつもればミルキーウェイ

                                                はじめに 分散システムやってるとどこからでも安全に採番できる強い衝突耐性をもったuuid的なほげほげidがほしくなります。 世にほげほげidはたくさんありますが、適当にREADMEとかよんでもみんな「これイケてるで!」「uuidとかより文字数すくないで!」「sortableでうれしいで!」とかそういうことばっかいっててどの程度衝突耐性があるのかよくわからん問題があります 今回はほげほげidの構成要素の調査と衝突耐性をざっとまとめて比較しようと思います。 比較する項目 ざっくり random bit数 衝突耐性 ソートできるか その他メモ みたいな感じで整理して比較していきます。 衝突耐性は 衝突確率P=0.5のときの必要な試行回数 乱数以外の識別要素 の2つで評価します。たとえばtimestampとか入れてるやつは暗号学的な安全性には寄与しないけど実用上はある精度の時刻で識別できて衝突耐性

                                                  グローバルなid生成器(UUID v4とか)の比較 - ちりもつもればミルキーウェイ
                                                • 結局UUIDは衝突するんですか(主にv4について)

                                                  ひさてるさん @tanakahisateru @MatsuP8 ナノ秒で同時刻に、なぜか同じMACアドレスを持つデバイスが、偶然にも14ビットの固有数を一致させたら衝突しますよ。まあたった14ビットですからね (同一のMACアドレス?) 2019-10-28 23:43:13

                                                    結局UUIDは衝突するんですか(主にv4について)
                                                  • 一部で話題になった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での議論に参加しています。日本人で首を突っ込んでる人はあまりいなさそうなので、現状について日本語でも少しまとめておきたいと思います
                                                    • Rails 6: UUIDで`first`や`last`を使う(翻訳)|TechRacho by BPS株式会社

                                                      概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: ‘Fix’ first & last by explicitly setting implicit ordering - Andy Croll 原文公開日: 2020/03/01 著者: Andy Croll 日本語タイトルは内容に即したものにしました。 Rails 6: UUIDでfirstやlastを使う(翻訳) UUIDを主キーに使うとさまざまなメリットを得られますが、Railsの「暗黙の順序」で問題が生じます。 2018年の記事ではfirstやlastは名前付きスコープで使うことをおすすめしましたが、現在はもっと簡単にActive Recordのデフォルトの振る舞いを再び有効にできるようになりました。 以下のように書くよりも Active Recordモデル上のシーケンスでないidに対して#firstや#lastを使うのを

                                                        Rails 6: UUIDで`first`や`last`を使う(翻訳)|TechRacho by BPS株式会社
                                                      • UUID, serial or identity columns for PostgreSQL auto-generated primary keys?

                                                        See the documentation for other functions to manipulate sequences. Generating UUIDs A UUID (universally unique identifier) is a 128-bit number that is generated with an algorithm that effectively guarantees uniqueness. There are several standardized algorithms for that. In PostgreSQL, there are a number of functions that generate UUIDs: The uuid-ossp extension offers functions to generate UUIDs. N

                                                          UUID, serial or identity columns for PostgreSQL auto-generated primary keys?
                                                        • なぜUUIDはハイフンで8-4-4-4-12に区切られているか? - Memo:

                                                          ある特徴的な文字列がある。 11b484b6-cfeb-4730-8fba-467aee2d26ad 使ったことがあれば、恐らくすぐに UUID であると分かると思う。UUID は16進数がハイフンで分けられた特徴的なフォーマットをしている。その区切り方は、 8-4-4-4-12 となんだか不思議な感じだ。 そもそも、UUID は 128bit の数値であり、それを文字列で表現したものなのでハイフンが無くたって問題ない。にもかかわらずわざわざ覚えにくいケタで区切ることが多い。 その理由として、最初に思いつくのは人間が読みやすくするためだとは思うが、覚えやすく均等に区切ったり、左右対称の形にはできなかったのだろうか? UUID の定義 生成した UUIDv1 を眺めてみる 元祖 UUID(Network Computer System の UUID) 形式の謎 RFC4122 で times

                                                            なぜUUIDはハイフンで8-4-4-4-12に区切られているか? - Memo:
                                                          • UUID Primary Key in Rails 6 with PostgreSQL and ActiveRecord

                                                            UUID Primary Key in Rails 6 with PostgreSQL and Active Record Updated Mar 6, 2021 8 minute read Sponsored by pganalyze Deliver consistent Postgres performance and availability through intelligent tuning advisors and continuous database profiling. UUID also known as GUID is an alternative primary key type for SQL databases. It offers some non-obvious advantages compared to standard integer-based ke

                                                              UUID Primary Key in Rails 6 with PostgreSQL and ActiveRecord
                                                            • UUID / CUID / nanoid とか乱数の話

                                                              単純にunixtimeを圧縮したいとしたら? -> base64とかで良い。 でもbase64は記号が入ってて邪魔 -> base62とかbase58 const PowerRadix = require("power-radix") const bases = [ "0123456789", "0123456789ABCDEFGHJKMNPQRSTVWXYZ", "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz", "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "ABCDEFGHIJKLMNOPQRS

                                                                UUID / CUID / nanoid とか乱数の話
                                                              • MySQL に UUID のデータを 16 byte で保存する - Qiita

                                                                似たような話は各所にあるのですが、自分の理解向け、備忘録向けに書きます。 UUID について もとの起こりはWikipediaなどを見るとして、実運用的には開発時にデータに一意なIDを割り振る際によく用いられる。 UUIDには複数のバージョンがあり、最も開発で用いられていると思われるのは UUIDバージョン4(ランダム生成) 、その他に バージョン1(MacアドレスやTimestamp情報を用いて生成) などがある。 ビット幅は 128ビット(16バイト) で、文字列表現では16進法で以下のような形で表現する。 (32バイト+バウンダリ4バイト=36バイト。 "-" がバウンダリ文字列) 550e8400-e29b-41d4-a716-446655440000 SQL を用いて 16バイトで MySQL に保存する (8.0 以前 ) MySQL に16バイトで保存する場合には、16進数の

                                                                  MySQL に UUID のデータを 16 byte で保存する - Qiita
                                                                • Why UUID7 is better than UUID4 as clustered index in RDBMS

                                                                  In the Introduction To Database Indexing Article, We discussed database indexes, Their type, representations, and use cases. In this article, we will experiment to check which performs better as a clustered index. UUID version 4 vs UUID version 7 or 6. Then we will discuss why that happened. What is UUID version 4?UUID, an acronym for Universally Unique Identifier, is a 128-bit identifier represen

                                                                    Why UUID7 is better than UUID4 as clustered index in RDBMS
                                                                  • ディスクのuuidを取得する方法3つ(使いやすいのは lsblk) - それマグで!

                                                                    blkid よりも lsblk- f が便利かもしれない lsblk のオプションに -f があります。 lsblk にオプションをつけると、UUIDが表示されます。 takuya@:~/Downloads$ lsblk -f NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 vfat 5601-CF5B 498.7M 2% /boot/efi ├─sda2 ext4 b051eadd-397c-42ea-b1c8-900bb4e6586e 456M 28% /boot ├─sda3 crypto_LUKS 4df88652-a2db-4aa9-b28d-2ba850132340 │ └─sda3_crypt LVM2_member TeBacs-1QVa-Za6E-Ain7-9RgV-oU3e-iBatiW │ ├─u

                                                                      ディスクのuuidを取得する方法3つ(使いやすいのは lsblk) - それマグで!
                                                                    • 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
                                                                      • 現実のオブジェクトにUUIDを割り振ってみる - ロマろぐ

                                                                        先日紹介したMemento Databaseを、収集したコレクションの管理のために本格的に使いはじめました。 ゲームソフトの裏に記載されているEANコード(バーコード)をAndroidのカメラで読むと、いつどこで買ったかがショパっとわかるのはとても楽しいし便利です。 Googleスプレッドシートと同期できるデータベースアプリ「Memento Database」がかなりいい! - ロマろぐ 個体を管理したい しかし、EANコードはコンテンツの番号であってその個体を識別する番号ではないのです。例えばダブリとか保存用に同じものを数個買った時は、どのバーコードを読んでも同じレスポンスになってしまいます。また90年代以前は商品にEANコード自体が存在しないので、バーコードで識別できないのです。 調べてみると、図書館では重複しない通し番号のバーコードシールを貼ることで蔵書を管理しているそうです。僕もプ

                                                                          現実のオブジェクトにUUIDを割り振ってみる - ロマろぐ
                                                                        • UUID 以外のユニークなIDって何があるの? - Qiita

                                                                          はじめに いつもユニークな ID に UUID を使っているのですが、他には何かあるのでしょうか? 気になったので調べてみました! 紹介するもの この記事ではこれらを紹介します UUID / npm github ULID / npm github CUID / npm github NanoID / npm github 利用数 npm のDL数を2022年の月別で比べてみます。グラフは npm-stat を使わせていただきました。 UUID と NanoID がよく使われているようです。 UUID が NanoID の 3倍、NanoID が CUID の30倍使われています。 UUID と NanoID を除くと以下のようになりました。 それぞれの特徴 UUID がとても使われているのはわかりました。続いて、それぞれの特徴を紹介します。 UUID まずはみんな大好き UUIDです!こ

                                                                            UUID 以外のユニークなIDって何があるの? - Qiita
                                                                          • UUIDとULIDの違いと種類を解説【ULID=ソート可能なUUID?】|東京のWEB制作会社・ホームページ制作会社|株式会社GIG

                                                                            UUID(Universally Unique Identifier)と ULID(Universally Unique Lexicographically Sortable Identifier)は、両方ともユニークな識別子を生成するために使用される技術です。 UUIDにはいくつかのバージョンがあり、この記事では、UUID v4、UUID v7、およびULIDについて説明し、それらの比較を行います。 UUID・ULIDとは?UUID v4UUID v4は、ランダムな値に基づいて生成される128ビットの識別子です。これは、生成するたびに完全にランダムな値が生成されるため、非常に高いユニーク性を持ちます。 衝突可能性は0ではないものの、現実的には衝突しないため安全に使用できる識別子になります。 UUID v4は、大量の一意な識別子を生成する必要がある場合に広く使用されています。 UUID v

                                                                              UUIDとULIDの違いと種類を解説【ULID=ソート可能なUUID?】|東京のWEB制作会社・ホームページ制作会社|株式会社GIG
                                                                            • RailsでMySQLを使う時にuuidにデフォルト値を入れたい - その辺にいるWebエンジニアの備忘録

                                                                              こんにちは!kossyです! さて、今回はRailsでMySQLを使う時にuuidにデフォルト値を入れる方法についてブログに残してみたいと思います。 環境 Ruby 2.6.6 Rails 6.0.3 MySQL 5.7系 moduleの作成 PostgreSQLの場合だとuuid型のカラムが存在しているのですが、MySQLの場合はありません。 # PostgreSQLの場合だとt.uuidでuuid型のカラムが用意されていて、uuid_generate_v4()関数でデフォルト値を設定できる t.uuid :uuid, null: false, default: 'uuid_generate_v4()' このため、独自でuuidを自動挿入する仕組みを整える必要があります。 コードを晒すと以下のような実装になります。 # uuid生成のモジュール # このモジュールをuuidを自動挿入した

                                                                                RailsでMySQLを使う時にuuidにデフォルト値を入れたい - その辺にいるWebエンジニアの備忘録
                                                                              • Why I’m not fan of uuid datatype – select * from depesz;

                                                                                Recently, on irc, there were couple of cases where someone wanted to use uuid as datatype for their primary key. I opposed, and tried to explain, but IRC doesn't really allow for longer texts, so figured I'll write a blogpost. First problem – UUID values are completely opaque. That means – uuids generated for table sessions will be indistinguishable from the ones for table users. If you're using n

                                                                                • ワイ「UUIDしか受け付けない関数に関係ない文字列いれてぶっ壊れてもた」 - Qiita

                                                                                  結論 TypescriptのBrand型を利用してNominal Typingを行うことで、特定の型しか受け付けない関数を作ることができる。 ある日 ワイ: 「あぁ〜娘ちゃん、ヘルプやで。UUIDしか受け付けへん関数つくったんやけど、UUIDちゃう文字列を入れてしもたらエラーになってもうて…」 娘ちゃん: 「うわー、それは大変だったね。でもちょっと、具体的にどんなコード書いたの?」 ワイ: 「せやな…こんなんや。」 ワイ: 「これでUUIDしか受け付けへんようにしたいんやけど、何かあかんのかな?」 娘ちゃん: 「うーん、確かに問題あるね。それだとstring型なら何でも受け付けちゃうよ。UUIDだけじゃなくてね。」 ワイ: 「ほんまに? でも、どうすればええんや?」 娘ちゃん: 「それならTypescriptのType Aliasという機能を使ってNominal Typingをするといいん

                                                                                    ワイ「UUIDしか受け付けない関数に関係ない文字列いれてぶっ壊れてもた」 - Qiita
                                                                                  1