Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
uuidの人気記事 54件 - はてなブックマーク
[go: Go Back, main page]

並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 54件

新着順 人気順

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

uuidに関するエントリは54件あります。 UUIDデータベースmysql などが関連タグです。 人気エントリには 『MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]』などがあります。
  • MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]

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

      MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
    • データベースでユニークキーにUUIDを使うメリットは何ですか?連番やタイムスタンプまたは複合などではいけないのでしょうか?どうも視認性が悪く使いにくく感じますし連番でも衝突しない気もします。

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

        データベースでユニークキーにUUIDを使うメリットは何ですか?連番やタイムスタンプまたは複合などではいけないのでしょうか?どうも視認性が悪く使いにくく感じますし連番でも衝突しない気もします。
      • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

        こんにちは、id:shallow1729です。最近はインフラ寄りなお仕事をよくやっていますがこれまでにいくつかデータ移行やデータ基盤構築などのバッチ処理のお仕事をしてきました。以前にも一度そういった経験を元に記事を書いたのですが、MySQLやシステムに関する知識が以前よりも増えた今もう一度書き直したいなと思いました。 なので今回はバッチ処理を書く時のテクニック2022版という感じです。今の仕事の関係でMySQLやrailsを前提にしている話が多いですが、おそらく他のデータベースを使っている人にも役に立つ話が多いのではないかと思います。ただ、今回の記事は経験に基づくものが多く、あまりよくないアイデアもあるかもしれません。改善点や間違いなどあればご指摘ください。 冪等性を持つように 冪等性とは端的に言えばある操作を複数回実行しても一回しか実行しなかった時と同じ結果になる性質の事です。長時間かか

          データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
        • 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 に関するベストプラクティス
          • エンジニアのための十徳ナイフ「DevToys」が便利すぎる - Qiita

            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? DevToysとは デベロッパーのためのスイスアーミーナイフの紹介文の通り。 開発時によく使うツールを十徳ナイフのようにまとめたアプリになっています。 JSONの整形とかエンコードデコードetc... プログラミングや保守運用の調査でやりがちな作業をいちいち変換サイトを探したり、エディター拡張機能のショートカットを探したりせずとも、これ一つですぐにできます! インストール Microsoft Storeからインストールできます。 公式サイトからストアへのリンクを踏むか、ストア検索して見つけてください。 WinGetやChocolatey

              エンジニアのための十徳ナイフ「DevToys」が便利すぎる - Qiita
            • UUIDとULIDを理解していない方は見た方がいい記事

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

                UUIDとULIDを理解していない方は見た方がいい記事
              • SQLアンチパターン簡単まとめ

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

                  SQLアンチパターン簡単まとめ
                • インデックスとは何?MySQL(InnoDB)とPostgreSQLのインデックスの違いとは?調べてみました

                  はじめに こんにちは。calloc134 です。 前のハッカソンイベントで、UUID をプライマリキーに利用するかどうかの議論がありました。 結果的にはあまりパフォーマンス要件の高くないアプリケーションであったため、プライマリキーとして UUID を採用することにしたのですが、イベント終了後に気になったため、調査を行いました。 今回は、この調査の結果を元に、MySQL と PostgreSQL におけるインデックスの内部構造の違いと、UUID をプライマリキーにする際の問題についてまとめてみたいと思います。 インデックスの概要 インデックスとは インデックスとは、データベースのテーブルに対して、アクセスを高速に行うための指標となる構造のことです。 インデックスとは日本語で索引ですが、まさに辞書の索引のように、アクセスにおいての手助けをしてくれます。 より具体的に解説すると、データベースにお

                    インデックスとは何?MySQL(InnoDB)とPostgreSQLのインデックスの違いとは?調べてみました
                  • 連番IDを使うと会社が潰れる。(訳: 連番とUUIDのベンチマークを取ってみた❤️)

                    大いなる流れには逆らえない あるAI研究者が言っていた、私の仕事もいつか AI に奪われるという言葉が非常に印象的だった。 私は一時期自分のキャリアに危機感を覚えAIに関する情報を集めていた。そのとき見つけたYoutube動画でこのようなことが語られていたのである。 ではなぜ彼らは研究を続けるのかと思うかもしれないが、個人や一団体がそれを放棄したところで世の中のイノベーションの流れを止めることは不可能だろう。 平和を望む国々も兵器開発をやめられないのと似たようなものだ。 私がこの記事のタイトルを思いついたとき、つい溜息が出た。あまり楽しくない思い出があるからだ。 ただ、思いついてしまった以上これを世に出さないわけにもいかず、血の涙を流しながらこの記事を書いている。 私というちっぽけな存在では、この大宇宙の大いなる流れには逆らえないのだ。 申し遅れました。私、YadaYadaKonnanYa

                      連番IDを使うと会社が潰れる。(訳: 連番とUUIDのベンチマークを取ってみた❤️)
                    • 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が原因であることが明らかに
                      • idをautoincrementして何が悪いの?

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

                          idをautoincrementして何が悪いの?
                        • 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, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog

                            (追記) 2024/5にRFCとなりました 『RFC 9562 Universally Unique IDentifiers (UUIDs)』 IETFに「New UUID Formats」という提案仕様が提出されています。 これは、時系列順にソート可能なUUID version 6, UUID version 7, UUID version 8を新しく定義するものです。 詳しい背景は提案仕様にゆずりますが、ULIDを始めとして、時系列順にソート可能な一意な識別子を利用したいというユースケースがあります。例えば、データベースのキーとして使えば、ソートせずとも順番に並びますし、書き込む際も順々に書き込めるのでデータアクセスが局所的になります。 今回は簡単に、それぞれのUUIDのフォーマットを眺めていきます。なお、フォーマットは異なりますが、バージョンを示す値は同じ位置にあります。 UUIDv

                              時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog
                            • MySQLでUUIDv4をプライマリキーにするとパフォーマンス問題が起きるのはなぜ?(N回目)

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

                                MySQLでUUIDv4をプライマリキーにするとパフォーマンス問題が起きるのはなぜ?(N回目)
                              • Goodbye to sequential integers, hello UUIDv7!

                                Scale-Out Delivery Platform→Complexity is inevitable. Tame it and gain your competitive advantage.

                                  Goodbye to sequential integers, hello UUIDv7!
                                • 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
                                  • 一意な識別子の生成で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
                                    • UUIDを短くするライブラリを作った

                                      のように、22文字の短くてスッキリしたIDに変換できます。 これを簡単に行うためのライブラリ「uuid58」を作成しました。 追記: また、これを簡単に試すためのウェブサイトも作成しました! 本記事ではuuid58を作った背景や使い方、特徴を紹介します。 動機 データベースの主キーにUUIDを使うことは多いですが、UUIDは36文字(ハイフン込み)と長く、URLに埋め込むと見た目も悪くなりがちです。 「短くしたい!」と思ってBase64エンコードを考える人も多いですが、Base64は/や+、=などURLで使いにくい文字が含まれてしまいます。 そこで、Bitcoinでも使われているBase58(視認性の悪い文字を除外したアルファベット)でエンコードすれば、 22文字に短縮できる URLセーフ 見た目もスッキリ 0とO、Iとlのような区別しづらい文字が除外されている ダブルクリックで選択可能

                                        UUIDを短くするライブラリを作った
                                      • 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)
                                        • 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対応)
                                          • ISUCON11 予選問題の解説と講評 : ISUCON公式Blog

                                            ※2021.09.18 18:44 MariaDBのDESC指定に関する記述を修正しました --- こんにちは、ISUCON11 予選問題担当の Mahito です。 この記事では ISUCON11 予選問題であるアプリケーション「ISUCONDITION」について、問題の概要と想定した解法について解説を行います。なお、ISUCON11 予選問題の作問はNTTコミュニケーションズ株式会社 - kanata、Mahito、東京工業大学デジタル創作同好会traP - eiya、oribe、ryoha、ヤフー株式会社 - okimoto、 tabuchi の7名で担当させていただきました。 ISUCONDITION とはISUCON11 予選問題は、ISU (問題ではイスをこう表現していたのでここでもそう表現します) が人々にとって大事なパートナーとして扱われる世界で、ISU から送られるデータ

                                              ISUCON11 予選問題の解説と講評 : ISUCON公式Blog
                                            • PostgreSQLのプライマリーキーはSERIALとUUIDのどっちが速いのか実験してみた - Qiita

                                              Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                                PostgreSQLのプライマリーキーはSERIALとUUIDのどっちが速いのか実験してみた - Qiita
                                              • ソートできるUUID v7をJavaで使うときの話

                                                JJUG CCC 2024 Spring の発表資料です

                                                  ソートできるUUID v7をJavaで使うときの話
                                                • Why UUIDs won't protect your secrets

                                                  This post is part of a collection on UUIDs. What is IDOR? Indirect Object Reference (IDOR) occurs when a resource can be accessed directly by its ID even when the user does not have proper authorization to access it. IDOR is a common mistake when using a separate service for storing files, such as a publicly readable Amazon S3 bucket. The web application may perform access control checks correctly

                                                  • https://twitter.com/LiosK/status/1588116287422877697

                                                      https://twitter.com/LiosK/status/1588116287422877697
                                                    • UUIDv7 in 33 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 33 languages
                                                      • 主キーサイズの違いによるPostgreSQLの検索性能の違いを比較する - ドワンゴ教育サービス開発者ブログ

                                                        導入 実行環境 テーブル定義 レコード作成 テーブルサイズ 検索速度 結論 We are hiring! 導入 みなさん、RDBのテーブル設計はしていますでしょうか。 テーブル設計時の大きな関心事の1つとして、主キー設計があります。 主キー設計では、「自然キー vs サロゲートキー」や「連番 vs 乱数」が主題になることが多いですが、今回はカラムサイズに注目して、主キーのサイズが検索性能に与える影響について調査してみたいと思います。 インデックスを使った検索が高速であることはRDBの常識中の常識ですが、その時もディスクやメモリからインデックスの値を読み取ってCPUを使って比較を行う操作が発生するわけで、値のサイズが小さいことは理屈上ではCPUキャッシュの利用やその他IO処理などにおいて有利に働くはずです。 今回は主キーを指定した単体取得のクエリにおいて、その影響がどの程度なのかを実際に計測

                                                          主キーサイズの違いによるPostgreSQLの検索性能の違いを比較する - ドワンゴ教育サービス開発者ブログ
                                                        • PostgreSQL 18正式リリース。非同期I/Oによる最大3倍の性能向上、UUID v7対応など

                                                          オープンソースのリレーショナルデータベース「PostgreSQL 18」正式版のリリースが発表されました(日本語版のプレスリリース)。 PostgreSQLはITエンジニアのコミュニティであるStackoverflowの調査で2023年にMySQLを抜いて以来、3年連続でITエンジニアに最も人気のあるデータベースとなっています。 非同期I/O処理の採用による性能向上 PostgreSQL 18で最も注目すべき点は、非同期I/Oの導入による大幅な性能向上でしょう。 これまでのPostgreSQLでは同期I/O処理を採用していました。これは例えばOSにファイルリードのようなI/O処理を依頼すると、処理が終了して結果が返ってくるまで、同一プロセス(もしくはスレッド)の処理が一時停止することを意味します。 同期I/O処理の利点は実装が比較的シンプルで容易であり、バグが発生しにくい点にありますが、ひ

                                                            PostgreSQL 18正式リリース。非同期I/Oによる最大3倍の性能向上、UUID v7対応など
                                                          • UNIQUE制約の理解が甘くて二重にインデックスを張りそうになった件 - Techouse Developers Blog

                                                            はじめに こんにちは、株式会社 Techouse のクラウドハウス採用でエンジニアインターンをしている ReLU と申します。 いきなりですが、以下のグラフをご覧ください。 これは PostgreSQL の実行計画を取得した結果です。 あえてグラフタイトルや横軸の説明は隠しているのですが、実行時間の差が非常に大きいことがわかると思います。 実行計画とは、データベースが SQL クエリを実行する際に、どのようにデータを操作するかを決定するための詳細な手順のことです。クエリを実行して期待される結果を得る方法にはいくつかの選択肢があり、その選択によって処理の効率が大きく異なります。PostgreSQL は、これらの選択肢の中から最も効率的だと判断した方法を実行計画として作成し、それに基づいてクエリを実行します。この選択は、これまでに収集された統計情報(テーブルのサイズやデータ分布)、インデックス

                                                              UNIQUE制約の理解が甘くて二重にインデックスを張りそうになった件 - Techouse Developers Blog
                                                            • UUIDの生成速度を上げる取り組み

                                                              背景 PostgreSQLのランダムデータ生成方法 uuid createではgetrandom()を使っていた 実際どれくらい違うのか? PostgreSQLでもgetrandom()が使えるのか? getrandom()のvDSO実装でUUID生成を比べてみる vDSO実装のgetrandomを使ってUUIDを生成してみる 参考資料 以前PostgreSQL 18でUUIDv7がサポートされたという記事を書きました。今回は現在取り組んでいるUUIDv7の生成を早くするための改善について、その背景や検証内容についてです。 背景 UUIDの生成速度が気になったきっかけは、PostgreSQLで色々なUUIDv7生成方法を比較していた時に、PostgreSQL 18で導入される予定のuuidv7()関数とpgrxで自前で作ったUUIDv7生成関数の性能比較をしていたときでした。 Postgr

                                                              • UUIDを重複させるにはどれだけ時間がかかるのか試してみた

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

                                                                  UUIDを重複させるにはどれだけ時間がかかるのか試してみた
                                                                • 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
                                                                  • 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
                                                                    • Node.js と ID について - Qiita

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

                                                                        Node.js と ID について - Qiita
                                                                      • GitHub - stateless-me/uuidv47: ⚡ UUIDv47 = v4 privacy + v7 performance

                                                                        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 - stateless-me/uuidv47: ⚡ UUIDv47 = v4 privacy + v7 performance
                                                                        • 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」の標準化作業が進行中
                                                                          • 第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 - jetify-com/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 - jetify-com/typeid: Type-safe, K-sortable, globally unique identifier inspired by Stripe IDs
                                                                              • 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)
                                                                                • 「PostgreSQL 18」公開 非同期I/O導入で性能が最大で3倍向上

                                                                                  PostgreSQLグローバル開発グループは2025年9月26日(米国時間)、オープンソースリレーショナルデータベースの最新バージョン「PostgreSQL 18」を公開した。 PostgreSQL 18では、非同期I/O(Input/Output)処理の実装により、あらゆる規模のワークロードで性能の向上が期待できるという。ベンチマークテストでは、特定のシナリオにおいて最大3倍の性能向上を確認したという。 PostgreSQL 18の主な機能強化、改善点は以下の通り。 非同期I/Oの導入 非同期I/Oの導入により、ファイル読み書きのI/Oリクエストを同時に複数発行できるようになった。これにより全体のスループットが向上した。シーケンシャルスキャン、ビットマップヒープスキャン、VACUUM(バキューム)処理において非同期I/Oがサポートされている。 sync設定を利用することで、従来のPost

                                                                                    「PostgreSQL 18」公開 非同期I/O導入で性能が最大で3倍向上

                                                                                  新着記事