ブックマーク / zenn.dev/ukkyon (2)

  • deleted_atにインデックスを雑に貼ったら本番DBが死んだ

    RDSが朝のピーク時間帯にI/Oスパイクで応答不能になりました。前日夜にリリースしたdeleted_atへの単独インデックスが原因です。stagingのEXPLAINでは複合インデックスが正しく選択されていたので、レビューでは検出できていません。 根っこにあるのはMySQL 8.0 innodb_stats_methodのデフォルト値nulls_equalと、IS NULLに対するコスト計算の噛み合わせです。8.0系で現在も未修正のバグに類する挙動で、NULL多数カラムへの単独インデックスがトリガーになります。 テーブルとクエリ 問題が起きたのはチケット管理SaaSのticketsテーブルです。ソフトデリートでdeleted_atを持つよくある設計です。 CREATE TABLE tickets ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, w

    deleted_atにインデックスを雑に貼ったら本番DBが死んだ
    tech0403
    tech0403 2026/04/20
  • DB設計の共有で疲弊してない?dbdocsのすゝめ

    DB設計の管理や作成に疲弊してません?こんにちは。ukmshiです。今日はDB設計の共有と管理に便利なツール、dbdocsについてお話しします。dbdocsを使えば、設計の可視化や共有がめちゃくちゃ簡単になるんです。今回は、その魅力と利点、そして実際の使い方について詳しく説明します。 dbdocsとは? dbdocsは、コードベース(DBML)でDB設計を管理し、URLで共有することが可能なツールです。データベースのテーブル構造や関係性を可視化し、それを他のチームメンバーやステークホルダーと手軽に共有することができます。 DBMLについてはこちらを参考に dbdocsの利点 dbdocsの利点について詳しく見ていきましょう。 無料 まず最初に、dbdocsは基無料です。コストを気にせずに利用できるので、チームの誰もがアクセス可能です。 コードベースで管理 dbdocsはコードベースでDB

    DB設計の共有で疲弊してない?dbdocsのすゝめ
    tech0403
    tech0403 2023/06/01
  • 1