並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 24 件 / 24件

新着順 人気順

UUIDの検索結果1 - 24 件 / 24件

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

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

      MySQLでプライマリキーをUUIDにする前に知っておいて欲しいこと | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
    • データ変更を伴うバッチ処理を書く時に考慮していること - 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 に関するベストプラクティス
        • 認証しないWeb認証 限定公開URLのセキュリティについて考える 公開版

          認証しないWeb認証 限定公開URLのセキュリティについて考える 2020/8/7 API Meetup Online #3- フューチャー株式会社 渋川よしき

            認証しないWeb認証 限定公開URLのセキュリティについて考える 公開版
          • エンジニアのための十徳ナイフ「DevToys」が便利すぎる - Qiita

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

              エンジニアのための十徳ナイフ「DevToys」が便利すぎる - Qiita
            • 10秒で衝突するUUIDの作り方

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

                10秒で衝突するUUIDの作り方
              • SQLアンチパターン簡単まとめ

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

                  SQLアンチパターン簡単まとめ
                • 乱数について本気出して考えてみる|TechRacho by BPS株式会社

                  プログラミングをやっていると、様々な乱数に出会います。乱数に関しては大勢の研究者が色々な研究結果を出しているため、種類も増え、いったいどれを使えばいいのかと悩む原因にもなります。 大勢が研究し利用している分野ですから、私以外でも大勢が乱数に関する記事を書いているため、あえて新しい記事を書く価値は高くないかもしれません。まあ、既に理解している人はここで記事を閉じるか、暇つぶし程度の感覚で読んでいただくと良いかと思います。 真乱数と疑似乱数 プログラミングの世界の中でいわゆる “乱数” として扱われることが多いのは擬似乱数です。疑似、と付くからには、これは実のところ乱数ではないと言えます。とは言え、擬似乱数を乱数でないと言ってしまうと話が終わってしまうので、疑似乱数を含む乱数を広義の乱数とします。この記事で扱うのは広義の乱数です。逆に、狭義の乱数、本物の乱数は真乱数と言います。 本物と言いまし

                    乱数について本気出して考えてみる|TechRacho by BPS株式会社
                  • 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生成方法についてあれこれ

                      ID生成について聞かれることが多いので、独自の観点でまとめてみます。タイトルは適当です…。 DBはMySQL(InnoDB)を想定しています。あしからず。 ID生成を知りたいなら ID生成に関しては以下の記事がよくまとまっているので参考にしてみてください。値形式など詳しく書かれています。 ID生成大全 Facebook, Twitter, Instagram等がどうやってIDを生成しているのか まとめ ID生成方法 以下のID生成方法は、お手軽に採用しやすいもの順で列挙します。 DB採番/連番型 AUTO_INCREMENT DBのAUTO_INCREMENTで採番する方法。 Pros 数値型で扱える 普通は64ビットの整数型を採用することが多い 単調増加する連番ですので、ソート可能でかつインデックスの空間効率がよい 単調増加するので、キャパシティを予測しやすい 64ビットあればあまり気に

                        ID生成方法についてあれこれ
                      • 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

                            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で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!

                                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!
                                • 一意な識別子の生成で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
                                  • メルセンヌツイスタはそんなに衝突しない - Qiita

                                    κeenです。こちらのスライドが話題になっているようです。 10秒で衝突するUUIDの作り方 - Speaker Deck 笑い話としても乱数の難しさの側面としても面白いのですが、これを見た人たちの反応がちょっと勘違いしてそうだったので補足します。 別に私は暗号とか乱数とかの専門家ではないです。 発表者の方のコードは読みましたか? 少し速度が必要になるのでRustに移植します。 [package] name = "genuuidv4" version = "0.1.0" edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] rand = "0.7.2" sfmt = "0.6.0" use

                                      メルセンヌツイスタはそんなに衝突しない - Qiita
                                    • 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)
                                      • 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

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

                                            PostgreSQLのプライマリーキーはSERIALとUUIDのどっちが速いのか実験してみた - Qiita
                                          • Generating UUIDs at scale on the Web

                                            TL;DR can you trust every browser to generate globally unique identifiers at scale? At Teads, we have tried, and the answer is yes, with a few caveats. This article describes the experiments we’ve run and the discoveries we made along the way. Why we need client-side unique identifiersGenerating unique identifiers is a common need that third-party scripts integrated on Web pages and e-commerce sit

                                              Generating UUIDs at scale on the Web
                                            • https://twitter.com/LiosK/status/1588116287422877697

                                                https://twitter.com/LiosK/status/1588116287422877697
                                              • 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を重複させるにはどれだけ時間がかかるのか試してみた
                                                  1