並び順

ブックマーク数

期間指定

  • から
  • まで

601 - 640 件 / 1321件

新着順 人気順

SQLの検索結果601 - 640 件 / 1321件

  • MySQLエキスパートyoku0825が目指す、DBAとしての未来像

    LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog LINEで働くエンジニアに色々と話を聞いていく「LINE Engineer Insights」。LINEの技術組織で働く人々に、何を重視して技術者としてのキャリアを歩んでいるのか、今LINEで何に取り組んでいるのか、今後実現していきたいことなどを聞いていきます。 今回登場するのは、MySQLエキスパートとして広く名を知られる田中翼(@yoku0825) 。日本人として3人目のMySQL分野のOracle ACEであり、2015年には「default_password_lifetime」の功績でMySQL 5.7 Community Contributor Awardに選出された田中は、2021年6月よりLINEのITSC DB

      MySQLエキスパートyoku0825が目指す、DBAとしての未来像
    • Next.jsとPrismaをCloudflareにデプロイして月300万のDBクエリに無料で耐える

      はじめに Next.js を Cloudflare にホスティングしようとすると、必然的に Edge Runtime 環境になります。しかし、Edge Runtime 環境では、Node.js Runtime と異なり、Prisma がそのまま使えません。 最初に思い浮かぶ解決策は Prisma Accelerate です。Prisma Accelerate は公式のサービスで、接続プールイングやグローバルキャッシュ機能を備えており、Edge Runtime でも Prisma を使えるようにします。 しかし、無料プランだと月に 6 万クエリの制限があり、本番運用には不安が残ります。 そこで、今回は Prisma Accelerate を自前で Cloudflare Workers 上に構築し、本番運用に耐えうるサービスを無料で開発する方法を紹介します。この方法なら、無料プランでも 月に

        Next.jsとPrismaをCloudflareにデプロイして月300万のDBクエリに無料で耐える
      • サービス無停止でRDB移行 〜 Yahoo!広告のOracleDB移行事例

        ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。Yahoo!広告 ディスプレイ広告(以下、ディスプレイ広告)エンジニアの池田です。 本記事では、ディスプレイ広告において広告主の予算に対する課金処理・配信制御に使われるRelational Database(以下、RDB)を障害を起こさずにサービス無停止で移行した事例について紹介します。無停止でのRDBの移行を検討されている方がいらっしゃったらぜひ参考にしていただければと思います。 サービスを停止できない理由 今回、私たちが運用していたOracle Database(以下、OracleDB)のハードウェアのEOLおよびソフトウェアのEOLに伴うバージョンアップ(Oracle12c→Oracle19c)などの理由により、

          サービス無停止でRDB移行 〜 Yahoo!広告のOracleDB移行事例
        • MySQLの機能でスロークエリ関連の解析を行う方法の紹介 - エキサイト TechBlog.

          はじめに XTechグループ Advent Calendar 2021の16日目は、iXIT株式会社 エンジニアの蝦名がお送りします。 最近ハマっているものは音楽系Vtuberです。VIRTUAFREAK良かった…。 qiita.com 本題 ツールなどを導入しなくてもSlowQueryを解析できる機能がMySQLには存在するので、今回はその一部を紹介します。 ちなみに私が開発しているサービスのMySQLバージョンは5.6です。 1. mysqldumpslow 一言で言うとスロークエリーログファイルを解析して内容のサマリーを出力してくれる機能です。 前提としてスロークエリーログを出力している必要があります。 使い方 コマンド ※合計実行時間が長い順に10件のSQLを出力する mysqldumpslow -s at -t 10 /opt/fio1/slog/sp-prd-db1-slow.

            MySQLの機能でスロークエリ関連の解析を行う方法の紹介 - エキサイト TechBlog.
          • 老兵のようなRDBMSからの解放を AWSが手がけるデータストアの再発明

            オンラインで開催されているAWS最大のグローバルカンファレンス「AWS re:Invent 2020」。12月2日に行なわれたAWS CEOのアンディ・ジャシー氏の基調講演では、データストア分野にもフォーカス。ストレージとデータベースの新サービスは、コスト削減と高い性能を求める顧客の声に応えた正常進化と言えそうだ。 もはや古いデータストアでは対応できない 3時間におよぶアンディ・ジャシー氏の基調講演において、コンピュート分野に続いて解説されたのがデータストアの分野だ。ここではデータを利活用するストレージの技術革新に加え、データベースへの取り組みも披露された。 まずゲストとして登壇したのは、2006年のAmazon S3ラウンチ当時にいち早くデータを格納したSmugMugの創業者であるドン・マクスキル氏。S3にデータをホストしたことで、最新の分析やデータ管理ツールを利用でき、1日数十億枚とい

              老兵のようなRDBMSからの解放を AWSが手がけるデータストアの再発明
            • DBアーキテクチャの比較と選択

              Database Engineering Meetup #1 DBアーキテクチャの比較と選択 Cloud-native storage service for bulk load & random lookup workload https://scalar.connpass.com/event/298887/

                DBアーキテクチャの比較と選択
              • ポート番号3306を使用する約360万台のMySQLサーバーが公開され潜在的な攻撃対象となっていることが判明

                セキュリティ企業Shadowserverの調べにより、ポート番号3306/TCPでアクセス可能なMySQLサーバーが約360万台も存在しており、サイバー攻撃の対象となる可能性があることが判明しています。 Over 3.6 million exposed MySQL servers on IPv4 and IPv6 | The Shadowserver Foundation https://www.shadowserver.org/news/over-3-6m-exposed-mysql-servers-on-ipv4-and-ipv6/ 2022年5月31日に発表されたShadowserverの報告書によると、デフォルトのポート番号である3306/TCPを使用する約360万台のMySQLサーバーがインターネット上で公開されており、TLS・非TLS接続にかかわらず応答したとのこと。 Shad

                  ポート番号3306を使用する約360万台のMySQLサーバーが公開され潜在的な攻撃対象となっていることが判明
                • MongoDBであるメリットが無くなってしまったのでMySQLに移行したはなし - KAYAC engineers' blog

                  SREチームの長田です。 この記事はTech Kayac Advent Calendar Migration Track 1日目の記事です。 今回はLobiで使用していたMongoDBをMySQLに移行したはなしです。 MongoDBを何に使っていたか DAUなどのKPIレポートや、サービスの状況を把握するための各種集計結果を保存するために使っていました。 サービス開始直後はこれらの数字を色々と試行錯誤しながら追加したり、減らしたりしていました。 頻繁な追加削除があるデータ構造を保存するために、スキーマレスなデータベースであるMongoDBはちょうどよかったようです。 (当時スキーマレスデータベースが流行っていたというのもあるでしょう) なぜ移行したのか MongoDBに保存されたドキュメントは、スキーマ管理がされていませんでした。 スキーマレスであることをいいことに、その時時によって様々

                    MongoDBであるメリットが無くなってしまったのでMySQLに移行したはなし - KAYAC engineers' blog
                  • GoでSQLにトレーシングコメントを埋め込んで実行する | おそらくはそれさえも平凡な日々

                    アプリケーションが発行するSQLにコメントが埋め込めると便利です。例えば、 /* path/to/logic.go:334 */ SELECT ... のようにSQLに発行元の情報をコメントとして埋め込んでからExecすれば、DB側のログ(general log等)にも記録されるため、SREやDREサイドからも、負荷の高いSQLがアプリケーションのどこから発行されているかが分かりやすくなります。 Goには github.com/shogo82148/go-sql-proxy という、SQL実行をトレースし、フック処理を差し込める便利なライブラリがありますが、今回それにpull requestを送って、SQL実行前にクエリの書き換えができるようにしました。 https://github.com/shogo82148/go-sql-proxy/pull/61 https://github.co

                      GoでSQLにトレーシングコメントを埋め込んで実行する | おそらくはそれさえも平凡な日々
                    • Heroku の無料プランが廃止されるようです

                      こんにちは。地図パズル製作所の都島です。今朝メールを確認したら、とても残念なメールが届いていたので、記事にしました。なんと、Heroku が無料プランを廃止するようです。2022/11/28 までに有料プランにアップグレードしてくださいと書かれています。残念! 詳しくはこちらを見てみてください。 ということで、Heroku でホストしているアプリをどうしたらいいか考えていかないといけないですね。いくつか案を考えてみますが、私もあまり詳しくないので、間違っていたらコメントで教えてください! 方法1: Heroku の有料プランに移す 一番簡単にできそうな方法です。でも、お金が結構かかる、、、というのが残念です。Hobby の dyno が $7/月、Heroku Postgres の Hobby Basic が $9/月、ということで、DB があるシステムだと毎月 $16 かかってしまうよう

                        Heroku の無料プランが廃止されるようです
                      • 今更聞けないDBMSのメモリ管理について

                        DBMSのメモリ管理について データベース管理システム(DBMS)の設計では、大量のデータと複雑なクエリを処理するために、ハードウェアの特性を最大限引き出すことが求められます。 この記事では、DBMSがどのようにメモリを使ってデータアクセスの速度を向上させ、同時にデータの安全性を確保しているのかを解説します。 DBMSと記憶装置の関係について DBMSが使う記憶装置は次の2つです。 HDD HDDは磁気ディスクを使用してデータを記録・読み取りする記憶装置です。その主な特徴は大容量であり、コスト効率が良いことです。DBMSでは、データの永続的な保存にHDDが用いられます。これにより、システムがシャットダウンされた後もデータが保持され、必要に応じて再びアクセス可能となります。 しかし、HDDのデータアクセス速度はメモリに比べて遅いため、リアルタイム処理や高速なトランザクションが求められるアプリ

                          今更聞けないDBMSのメモリ管理について
                        • NewSQL その成り立ちとモチベーション

                          Database Lounge Tokyo #6の発表資料です。 (参考URL) ・NewSQLのblog https://qiita.com/tzkoba/items/5316c6eac66510233115 https://qiita.com/tzkoba/items/3e875e5a6ccd99af332f ・B-TreeとLSM-Tree https://docs.google.com/presentation/d/e/2PACX-1vSNk8RkQrVRm_BNZKYyz0sl1k7C6yjTfJIqfMDxnnka8f4pfpf6j2yuXvxvyVGnrzRERdAaxNbOU-CT/pub?start=false&loop=false&delayms=3000&slide=id.g4c1e3ed2c3_0_6 ・ConsistencyとIsolation https://f

                            NewSQL その成り立ちとモチベーション
                          • PHPer が知るべき MySQL クエリチューニング/What PHPers Need to Know about MySQL Query Tuning

                            PHP カンファレンス 2021 10月2日(土) 15:40〜 Track2 でお話ししたスライドです https://fortee.jp/phpcon-2021/proposal/a795874d-9f0d-48a7-924f-a386bd1cea02 少しずつ加筆修正するかもしれません ご質問、ご指摘事項は Twitter (https://twitter.com/mamy1326) までいただけたら最高のご褒美です m(__)m

                              PHPer が知るべき MySQL クエリチューニング/What PHPers Need to Know about MySQL Query Tuning
                            • Row Level Securityはマルチテナントの銀の弾丸になりうるのか / Row Level Security is silver bullet for multitenancy?

                              builderscon 2019の発表資料です

                                Row Level Securityはマルチテナントの銀の弾丸になりうるのか / Row Level Security is silver bullet for multitenancy?
                              • Notionでのドキュメント管理の何がつらいか - パルカワ2

                                Notionでドキュメントを書いてる。ドキュメントは書く、共有する、読むなどユーザーそれぞれ色々なシナリオがあり、そのシナリオそれぞれでつらみがある。 Notionに限らずすべてのサービスは使っていればつらいところはあると思っていて、つらいとはいえNotionから別のドキュメント管理サービスに乗り換えたいという気持ちは全くなく何がつらいのか考えNotionでなにか出来ることはないか考えたり、つらみを共有することで知見を得たい。 検索がつらい フロー型とストック型の情報が入り乱れる 検索をする時はストック型の情報を探すことが多い。例えば、リリース作業手順ドキュメントを探したいときに「リリース 作業 手順」で検索するけど日報や議事録などは検索から除外したい。 Notionの検索には、FilterでPageの指定が出来るのでそれを駆使するしかない。Pageの指定をした場合、Pageの配下は検索対

                                  Notionでのドキュメント管理の何がつらいか - パルカワ2
                                • MySQLとOracleの実行計画を比較してみた - ASMのきもち

                                  まいえすきゅーえりたい ぽすぐれない おらくるってる(狂ってる)tomoです。 今日はいつものMySQLリファレンスを読むではなく、夏休みの宿題にしていたこれをやってみます。 MySQLとOracleDBの実行計画を比較してみた さて同じようなテーブルで同じデータを載せて。 実行計画を取ってみた時、どのくらい情報量が違うのか簡単に違いを見てみましょう。 前提として、以下をご認識ください。 一方はOSSのDBエンジン、もう一方はガチガチ商用DBエンジンです。情報量が違うのは当たり前であって、良し悪しを比較したいのではありません。そして製品比較をしたいのではありません。いつも商用DBメインで使っているエンジニアが、OSSのDBにこうゆう情報も出してほしいな!というのをお願いしたいと思っていて、それを考える元ネタメモだと思ってください。 OSSでこれだけの情報出せるMySQLや、今回紹介しません

                                    MySQLとOracleの実行計画を比較してみた - ASMのきもち
                                  • AWSが提唱するゼロETLとは何か?概念と登場の背景の推察 - NRIネットコムBlog

                                    こんにちは、佐々木です。年末に書こうと思って、すっかり忘れていた宿題です。 2022年末のre:InventのキーノートでAWSのCEOであるAdam Selipskyが、『A Zero ETL future』という概念が提唱しました。言わんとすることは解るのですが、これは一体どういう文脈で、なんのためなのだろうと疑問に思う方は多いと思います。そこで、自分なりにデータ分析を取り巻く現状と課題、ゼロETLの概念が出てきた理由をまとめてみます。これは私自身の思考なので、全然違う可能性が高いですので、悪しからず。 データ分析とETLの現状と課題 ゼロETLの話をする前に、データ分析とETLの現状の話をしましょう。データ分析をする際には、必ずデータが必要です。では、そのデータはどこからやってくるのか?単一のシステム内で分析する場合もありますが、多くの場合はいろいろなシステムから必要なデータを集めて

                                      AWSが提唱するゼロETLとは何か?概念と登場の背景の推察 - NRIネットコムBlog
                                    • Amazon RDS/Auroraをクローンするシステムを作った話 - クックパッド開発者ブログ

                                      こんにちは、技術部SRグループの菅原です。 最近、Ninja650からNinja1000に乗り換えました。パワーがあるせいで3速発進・4速発進が平気でできてしまい、シフトワークがどんどん下手になっています。精進したいものです。 この記事では、Amazon RDS/Auroraをクローンするシステムを作った話を書きます。 Amazon RDS/Auroraをクローンするシステム サービス開発を行っていると、調査や検証でプロダクション環境で使われているデータベースが必要になることがあります。開発環境やステージング環境にもデータベースは存在するのですが、プロダクション環境のデータでしか再現しないバグの調査や、プロダクション環境のデータ量でのスキーマ変更の負荷の検証など、開発環境やステージング環境のデータベースではできない作業も多いです。しかし、オペレーションミスや個人情報へのアクセスを考えると、

                                        Amazon RDS/Auroraをクローンするシステムを作った話 - クックパッド開発者ブログ
                                      • 持続可能な AWS インフラストラクチャの最適化、第四部:データベース編 | Amazon Web Services

                                        Amazon Web Services ブログ 持続可能な AWS インフラストラクチャの最適化、第四部:データベース編 このブログは Otis Antoniou, Ibtehaj Ahmed, Darren Ko, Ceren Tahtasiz によって執筆された内容を翻訳したものです。原文はこちらを参照して下さい。 このシリーズの第一部:コンピュート編、第二部:ストレージ編、第三部:ネットワーキング編では、持続可能性のために AWS アーキテクチャのコンピュート、ストレージ、ネットワーキングレイヤーを最適化するための戦略を紹介しました。 この投稿、第四部では、データベースレイヤーに焦点を当て、データベースの使用率、パフォーマンス、およびクエリを最適化するための推奨事項を提案します。これらの推奨事項は、AWS Well-Architected Framework のサステナビリティ(持続

                                          持続可能な AWS インフラストラクチャの最適化、第四部:データベース編 | Amazon Web Services
                                        • Apache Iceberg とは何か - 流沙河鎮

                                          はじめに 概要 Apache Iceberg(アイスバーグ)とは [重要] Icebergの本質はTable Specである Table Spec バージョン Icebergハンズオン Icebergの特徴 同時書き込み時の整合性担保 読み取り一貫性、Time Travelクエリ、Rollback Schema Evolution Hidden Partitioning Hidden Partitioningの種類 時間 truncate[W] bucket[N] Partition Evolution Sort Order Evolution クエリ性能の最適化 ユースケース Icebergのアーキテクチャ Iceberg Catalog Iceberg Catalogの選択肢 metadata layer metadata files manifest lists manifest f

                                            Apache Iceberg とは何か - 流沙河鎮
                                          • AWS System Managerセッションマネージャーがリモートホストのポートフォワードに対応しました | DevelopersIO

                                            AWS System Managerセッションマネージャーはポートフォワードに対応しており、セキュリティグループで特定のポートをあけることなく、プライベートサブネットのWindowsサーバーにRDPするといったことが可能です。 従来は、セッション接続先のEC2インスタンス内で LISTEN しているポートしかフォワードできませんでしたが、今回のアップデートにより、リモートホストのポートも転送できるようになりました。 より具体的には、EC2インスタンスを踏み台に、VPC内のリソース、例えばRDSのホスト・ポートを転送するといったことが可能になりました。 やってみた SSM エージェントバージョンを確認 AWS Systems Managerは操作対象のインスタンスにエージェントをインストールします。 Session Managerを利用したリモートホスト・ポートフォワードの場合、バージョン

                                              AWS System Managerセッションマネージャーがリモートホストのポートフォワードに対応しました | DevelopersIO
                                            • サーバレスで扱うデータストアとしてS3という選択肢があるらしい - Qiita

                                              この記事は、ニフティグループ Advent Calendar 2020 最終日の記事です🎄 昨日は、@RPcat さんの 即フォーマットチェックにincronを使う でした。 ファイルの変更や操作を監視してくれるコマンドが用意されていることを知らなかったので、非常に勉強になりました。 はじめに 皆さん、サーバレスアプリケーションを作ろうと考えたときに選択するデータストアとして何を思い浮かべますか? 多くの人が思い浮かべるのは、 Amazon DynamoDB Amazon RDS + Amazon RDS Proxy だと思います。 ただ、DynamoDBを使っているときに「使い慣れているSQLを使いたいなあ」と感じたり、個人でRDSを使うには「金額が高すぎるなあ」と感じることがあると思います。自分がそう感じていました。 そこで、これらの問題を解決する一つの選択肢として Amazon S

                                                サーバレスで扱うデータストアとしてS3という選択肢があるらしい - Qiita
                                              • PythonでDDDやってみた💪 - techtekt

                                                はじめに 実行環境 ディレクトリ構造 app migrations/model pyproject.toml ソースコードと簡単な解説 app/core app/core/abstract app/core/decorator app/core/exception app/core/interface app/core/middleware app/core/mixin app/ddd app/ddd/application app/ddd/application/schema app/ddd/application/schema/studnet app/ddd/application/usecase app/ddd/application/usecase/student app/ddd/domain app/ddd/domain/student app/ddd/infra app/ddd

                                                  PythonでDDDやってみた💪 - techtekt
                                                • Prisma ORMを2年運用して培ったノウハウを共有する

                                                  TSKaigi 2024 ref: https://tskaigi.org/talks/tockn

                                                    Prisma ORMを2年運用して培ったノウハウを共有する
                                                  • PHPの改善 !== PHPのバージョンアップ | PR TIMES 開発者ブログ

                                                    <? include("abc.php"); include("def.php"); include("conf.php"); include("db.php"); include("some.php"); include("what.php"); Define("NUM", 100); class super_calc extends great_calc { /* * * * コンストラクタ * * * * */ public function super_calc($initial_num){ $this->db = DB::getDb(DSN); $this->initial_num = $initial_num; } /* * * * チェック * * * * */ public add_ok($add_num){ $res = $this->addable($add_num);

                                                      PHPの改善 !== PHPのバージョンアップ | PR TIMES 開発者ブログ
                                                    • 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
                                                      • CDNレイヤでDBのコネクションプーリングとクエリキャッシュを提供。世界中どこからのDBアクセスでも高速化する「Hyperdrive」、Cloudflareが提供

                                                        CDNレイヤでDBのコネクションプーリングとクエリキャッシュを提供。世界中どこからのDBアクセスでも高速化する「Hyperdrive」、Cloudflareが提供 Cloudflareは、グローバルなCDNレイヤでデータベースのコネクションプーリングとクエリのキャッシュを提供することによりデータベースへのアクセスを高速化する新サービス「Hyperdrive」のオープンベータを開始したと発表しました。 Want to make the existing regional database in your legacy cloud provider much, much faster? We've just launched Hyperdrive, which dramatically speeds up queries you make to databases you already ha

                                                          CDNレイヤでDBのコネクションプーリングとクエリキャッシュを提供。世界中どこからのDBアクセスでも高速化する「Hyperdrive」、Cloudflareが提供
                                                        • PostgreSQLに関するNTTデータのSlideShareのスライドリスト

                                                          はじめに SlideShareの広告対策です。 更新履歴 2023/12/13 CloudNative Days Tokyo 2023の資料を追加しました。 2023/12/07 PostgreSQL Conference Japan 2023の資料を追加しました。 2023/11/16 NTTデータで以前使われていたSlideShareのスライドを追加しました。 2024/03/08 第45回PostgreSQLアンカンファレンス@オンライン、DEIM2024の資料を追加しました。 2024 OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)

                                                            PostgreSQLに関するNTTデータのSlideShareのスライドリスト
                                                          • blitz-js prisma rails 倒し方

                                                            この記事の内容 blitz-js が生まれた背景 prisma の紹介 blitz で簡単なブログを作ってみる blitz を vercel にデプロイしてみる tldr blitz-js は next.js + prisma で rails を再現しようとしているフレームワーク Prisma ORM それ自体が良い。blitz の理解のためにも、まず Prisma を学べ blitz-js 自体はまだ α 品質だけど、今から注目しておく価値はある。デファクトになるかは不明。思想は継承されそう。 はじめに next.js はとても良いフレームワークだが、永続層を持たない。なのでフロントエンドとフロントサーバーに閉じている。 永続層、つまり DB を持たないので、初学者や流行りのプログラミングスクールの教材に選ばれない。また、JavaScript の学習資料が散らばっている。 要は Rail

                                                              blitz-js prisma rails 倒し方
                                                            • 全俳句データベースVer.2

                                                              ぜんぶの俳句のデータベースです

                                                                全俳句データベースVer.2
                                                              • PostgreSQLを生成AIの情報源として使える高速ベクトルデータベース化拡張「Pgvectorscale」がオープンソースで公開。Pgvectorをさらに高性能化

                                                                PostgreSQLのマネージドサービスなどを提供しているTimescaleは、PostgreSQLで高速なベクトルデータベース機能を実現する拡張機能「Pgvectorcale」をオープンソースとして公開したことを発表しました。 大規模言語モデルを用いた生成AIの注目度が高まる中で、文章や画像、音声といったデータの特徴を数値で表現するベクトル化(もしくはエンベディング)により、大規模言語モデルで扱えるようにすることへの注目も高まってきています。 ベクトルデータベースは、このベクトル化された膨大なデータの保存や類似度の検索などが可能です。 例えば、RAG(Retrieval Augmented Generation)と呼ばれる手法により大規模言語モデルの回答に外部のデータベースから取得したデータを組み込むことができます。こうした場面でベクトルデータベースが活用されます。 高速ベクトルデータベ

                                                                  PostgreSQLを生成AIの情報源として使える高速ベクトルデータベース化拡張「Pgvectorscale」がオープンソースで公開。Pgvectorをさらに高性能化
                                                                • プライマリーキー(primary key)はシーケンシャルな値で良いと思うよ - 角待ちは対空

                                                                  zenn.dev を読んでの感想です。「シーケンスナンバーをPKにする」以外の項目については言及しませんが、言及しないことは正当性や妥当性を保証していることにはならないです。 InnoDB(MySQL)を想定してます。が、原理は割と一般的なので他のDBでも適用できることが多いと思います。 追記:一般的とは分散でないような"普通の"RDBMSを想定してましたが、分散システム(distributed systemないしreplicated system)のような場合では話が違います。 なぜシーケンシャルな値がよいか 端的にいうと書き込み操作時にバッファープール(baffuer pool)に読み混む必要のあるページが少なくて済むからです。その結果書き込み操作時にバッファープールにページが存在する可能性が高くレイテンシー的に有利になる可能性が高いです。 バッファープール、ページ、btreeなど具体

                                                                    プライマリーキー(primary key)はシーケンシャルな値で良いと思うよ - 角待ちは対空
                                                                  • PostgreSQL チューニングよもやま話 - エムスリーテックブログ

                                                                    【Unit4 ブログリレー3日目】 こんにちは,エムスリーエンジニアリンググループの榎田です.数学とテレビゲームが好きです. 今回は,Unit4 で運用している "Docpedia" というサービスで実施した SQL チューニングの実例を2つご紹介します.普段の私が意識していなかった, RDBMS の内部機構に関する話が登場して面白かったので,今回の記事を書きました. なお,本稿で扱う議論はすべて PostgreSQL 11.x 以上を対象としており,特にその他の RDBMS で同様の動作をするかは確認していません.定性的な挙動に共通するものはあるかもしれませんが,ここで述べた話はそのままは通らないであろうことをお断りさせてください*1. プロダクトについて index なしで意外と耐えたが,耐えきれなかった話 実際の SQL とテーブル定義 原因の分析 対応策 SELECT DISTIN

                                                                      PostgreSQL チューニングよもやま話 - エムスリーテックブログ
                                                                    • 社内向け SQLチューニング勉強会を実施しました

                                                                      はじめのご挨拶 はじめまして。BEENOSの鈴木です。 普段はBEENOSグループのtenso株式会社でヘルプデスク業務に従事しておりますが、たまにサービス関連のデータベース、MySQLのチューニングや調査などもしております。 今回、普段から触っているMySQLのチューニング勉強会を実施しましたので、その内容を少し公開したいと思います。 勉強会を開催しようとしたきっかけ tenso株式会社の開発チームには、SREチーム(運用チーム)があり、元々は私も所属しておりました。 SREチームに新規メンバーが参入してきたこともあり、改めてデータベースと向き合う人のために、まずはSQLのチューニングを覚えてもらいたいとの要望があり、開催することにしました。 また、BEENOS全体としても開発エンジニアがコードを書くだけでなく、コードに含まれているSQLがどのように動くかを把握しパフォーマンスの良いSQ

                                                                        社内向け SQLチューニング勉強会を実施しました
                                                                      • "壊れにくい"データ基盤を構築するためにMackerelチームで実践していること - Hatena Developer Blog

                                                                        こんにちは。MackerelチームにおいてCRE(Customer Reliability Engineer)をしているid:syou6162です。主にカスタマーサクセスを支えるデータ基盤の構築や、データ分析を担当しています。 今回は、壊れにくいデータ基盤を構築するため、Mackerelチームで実践していることを紹介します。 なぜ壊れにくいデータ基盤を構築するのか データ基盤が“壊れている”とはどういうことか 壊れてないだけでなく、壊れたら気付ける 前提とするシステム構成 壊れたことに気付けるよう監視する 1. バッチジョブが失敗したことに気付く 2. 投入されたデータの性質を監視する 3. ビューが壊れてないかを監視する 4. 利用状況を監視する そもそも壊れてない状態を保つ 1. データリネージを元に修正できるようにする 2. 使われていないテーブルやビューは定期的に掃除 おわりに 参

                                                                          "壊れにくい"データ基盤を構築するためにMackerelチームで実践していること - Hatena Developer 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
                                                                          • 総務省|報道資料|統計表における機械判読可能なデータの表記方法の統一ルールの策定

                                                                            連絡先 (ルールの内容について) 統計局統計情報システム管理官 澤田、鮒田 電話:03-5273-1007 E-mail:stat_saitekika_atmark_soumu.go.jp (制度について) 政策統括官(統計基準担当)統計企画管理官室 赤谷 電話:03-5273-1142 E-mail:s-soukatsu_atmark_soumu.go.jp (スパムメール防止のため「@」を「_atmark_」に換えて表記しています。)

                                                                              総務省|報道資料|統計表における機械判読可能なデータの表記方法の統一ルールの策定
                                                                            • ISUCON10 予選問題の解説と講評 : ISUCON公式Blog

                                                                              ISUCON 10 予選問題作問担当の @yosuke_furukawa です。ISUCON 10 の予選お疲れさまでした。このブログでは、 ISUCON 10 の予選問題の解説と講評を行います。 問題については下記のURLにて公開されています。 http://github.com/isucon/isucon10-qualify 動作確認をしたい場合は README.md を確認の上、検証してみてください。 課題アプリケーション ISUUMO について ISUCON10 の予選の問題は、 ISUUMO と呼ばれるイスに合う物件を検索するサイトでした。せっかくリクルートが作問担当になったので、リクルートならではのものにしたいのと、ずっと社内ISUCONでポリシーとして持っていた「実際に起きているパフォーマンス問題に近い課題を設定したい」という思いから作りました。 今回の問題は位置情報を使った

                                                                                ISUCON10 予選問題の解説と講評 : ISUCON公式Blog
                                                                              • Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい - GMOインターネットグループ グループ研究開発本部(次世代システム研究室)

                                                                                2023.01.11 Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい Amazon Aurora MySQLでテーブルの再構築を伴う操作を行うと,Readerインスタンスで瞬間的に対象のテーブルが見えなくなる場合があるので,オペレーションの実行タイミングに気をけましょう,というお話です。再構築を伴う操作には,一部のALTER TABLEやOPTIMIZE TABLEが含まれます。 こんにちは,S.T.です。Amazon Aurora MySQLで少し気になる現象を見かけたので紹介します。この現象を知っていれば回避できるので,クリティカルな影響があるということではないですが,将来直ってくれると嬉しいですね。 1.Amazon Aurora MySQLとは Amazon Aurora MySQLはAWSで利用できるマネージドのRDBです。コ

                                                                                  Amazon Aurora MySQLでテーブル再構築を伴う操作をするとテーブルが見えなくなるっぽい - GMOインターネットグループ グループ研究開発本部(次世代システム研究室)
                                                                                • DBサーバでUPDATE/DELETEを打つ安心感を高める

                                                                                  近年はDBサーバで直接UPDATE/DELETE文を発行する場面はかつてより減ったように感じますが、引き出しとして持っていて損はないと思ったので私が普段やっている方法をメモしておきます。 プロトタイピングだったり、開発環境でも有効なので手癖にしておくのは有効だと考えます。 MySQLを例に書いていますが、対象のRDBMSは特に限定されません。 1. 対象のレコードを下見する まずはこれから更新する対象を見ておきましょう。 mysql> select * from books where id=1; +----+-----------+-----------------+-------+ | id | author_id | title | price | +----+-----------+-----------------+-------+ | 1 | 1 | Learning UPDA

                                                                                    DBサーバでUPDATE/DELETEを打つ安心感を高める