せっかくなので登壇したLTの解説記事を書きました #kanrk09
関西Ruby会議09でLT登壇してきました 〜Aurora MySQL 8.4リリース! Rubyistが備えること〜 - fkm_y' log fkmy.hatenablog.com/entry/20…
MySQL Community Server 26.7 Early Access Release | mysql
blogs.oracle.com/mysql/mysql…
Mitani retweeted
20年前のシステムエンジニア
・終電が無くなってからが本番
・残業300時間を超えないと人権がない
・徹夜明けが日常
・デスマーチは祭り
・現地テストで仕様が判明
・自宅は倉庫
・「今月は楽だった」が残業100時間
レトロPCの最新ニュースや活用術、コミュニティ動向を発信するサイト( retropcnews.com )を始めることにしました!
公式アカウントは @retropcnews です。
皆様のご支援をどうぞよろしくお願いいたします。
Mitani retweeted
生成AIでなぜ格差が拡大するかというと、「学ぶ理由としての活用」と「学ばない言い訳としての怠惰」で二極化するからです。
AIがあるから英語やプログラミングはもう勉強する必要がない。と、自分が楽なほうの世界を夢想して何もしない。これこそが格差を固定化させる罠。
AIがあるから英語やプログラミングの勉強が簡単になった。これまでなら60点止まりだった人たちが、AI家庭教師のおかげで80点90点取れるようになった。というのが本当の価値。
どちらを選ぶかはあなた次第ですが、人類の歴史において真剣勝負から逃げて熱量の低い人生を選択した人が勝ったことは一度もありません。
Mitani retweeted
その昔、3000万ユーザー・10億APIヒット/日・米国App StoreでYouTubeやFacebookより上位のトップランカーアプリの裏で動くBaaSを作ってましたがpkeyは意図的に連番でした
UUIDによるキャッシュヒット率の低下は大規模システムでは恐怖です
「ただ遅い」ならまだいいのですが、ハードウェアのリソース利用効率が悪くなるのだから、シングルでスケールアップするしかないマスターDBにとっては最悪のトレードオフです
readをレプリカに逃がしても4-5万QPS残るような状況で、もしUUIDにしていたら、当時のハードウェア環境ではかなり早い段階でシャーディングせざるをえない状況を自ら招いていたと思います
ほぼ自分一人でインフラからバックエンドまで全体を見ていたのでシャーディングしてしまったらもう地獄の始まりでほとんどの時間をDBのお世話に費やすことになったでしょう
たかが O(n) でしか性能もスケールしない、稼働率は A^n で指数的に低下していく、必要悪としても最悪の部類のアーキテクチャであるシャーディングのために自分の時間を捧げるのは避けたかった
pkeyの空間効率の悪さは増幅します、tuple本体だけでなくインデックス、外部キー、そしてジョインするときの比較演算にCPUのレジスタやL1に乗る乗らないレベルまで、128bit vs 32bitで4倍違うと最終的に8倍16倍の違いへと増幅されます
UUIDv7とかで局所性の破壊がふさがれても、DBシステム性能設計の最大の要衝が「空間効率」であることには変わりません
というわけで
シャーディングが必要な状況を自らまねきデバッグなどの開発体験も下げる自殺行為のUUIDは避けて、最密充填の「普通の連番」をpkeyにすることを、多数のDBの内部アーキテクチャを見てきたDBオタクとして推奨します
それでもUUIDっていう人のほとんどが「ユーザーに見える・予想できるIDを使いたくない」という話をしてきます
それってURLなどで公開されるIDとして使うイメージだと思うのですが、ユーザーに公開されるテーブルの場合、pkeyとは別にpublic_idをテーブルに追加してrandom_hex(16)とかをセットする(&ユニーク制約でインデックスを貼る)のがおすすめです
なぜcuidやbase62やbase36でなくhexなのか、なぜ16文字なのか、などは聞かれれば答えます、(ヒント:誕生日問題で50%衝突確率ベースでちょうどよい)
だいたいYouTubeの動画でさえいまだにpublic_id = base62(11)なんですよ、uuidの32文字なんて愚の骨頂です
pkey: integer(32bit or 64bit)
public_id: random_hex(16-32 chars, 段階的に増やしてok)
で現代のハードウェアならどこまでも行けます(必要になれば最アーキテクトの時間が十分とれる)から安心してください
2026年2月10日発売。わいわい / “PostgreSQL実践入門 | 技術評論社” htn.to/2pDD9dwT6P
書きました。
できればBug 88720でAffects Meのご協力をお願いします。
labs.gree.jp/blog/2026/01/25…
bugs.mysql.com/bug.php?id=88…
Mitani retweeted
#ANDPAD_Advent_Calendar 2025 24 日目の記事をテックブログで公開しました !
Aurora MySQLにおけるPerformance Schemaの手動管理と自動管理の違い - ANDPAD Tech Blog
tech.andpad.co.jp/entry/2025…
Mitani retweeted
削除フラグを求める理由って復元できなくなる怖さがあると思うのだけど、その怖さを回避する代わりに消えたはずのデータが見えてしまうリスクを引き受ける事になるのだよ。それに加えてパフォーマンス劣化のリスクも上乗せされる。
削除ならテーブルからは消されるべき、残したいなら理由を考えるべき
Mitani retweeted
アンドパッドのAdvent Calender 19日目を担当してます。
ヘーシャのSRE、DBRE、CREの今年の活動ハイライトをレポートとしてまとめました。
#ANDPAD_Advent_Calendar 2025 19 日目の記事をテックブログで公開しました !
@jnytnai0530 による 2025 の xRE の活動レポートです
アンドパッドのSRE・DBRE・CRE:2025年の活動ハイライト - ANDPAD Tech Blog
tech.andpad.co.jp/entry/2025…
Mitani retweeted
さっきのスライドです #mysql_jp
「MySQLとPostgreSQLのコレーション」
speakerdeck.com/tmtms/collat…
Mitani retweeted
2021年にNotionが直面したPostgreSQLのスケーラビリティ問題について解説
データベースにおけるスケーラビリティは、多くのプロダクトが必ず直面する課題の一つです。Notionも例外ではなく、2021年初頭の時点で、PostgreSQL上には200億以上のブロックレコードが存在していました。
長年にわたるユーザー増加とプロダクト成長により、ブロック・スペース・コメントといった主要テーブルは肥大化し、PostgreSQLモノリスの限界が顕在化していきます。
具体的には、
・VACUUMプロセスが正常に動作しなくなる
・トランザクションIDのラップアラウンド(TXID wraparound)といった、
データベースの安定運用にとって致命的な問題が発生する兆候が見られるようになりました。
これを受けてNotionは、従来のモノリシックな構成から脱却し、データベースのシャーディングに踏み切ります。
シャードキーにはworkspace ID(ワークスペースごとの一意なID)を採用し、論理的に480個のシャードを作成。
それらを32台の物理データベースに分散配置する構成へと移行しました。
notion.com/ja/blog/sharding-…
Mitani retweeted
私がまだDBのエンジニアとしてできない事として、特に大企業に存在するモノリシックな巨大共有DB。あれをどうにかしたい。one DBという考えで作るものとは別。軽微な改修さえ、あのDBにお伺い立てないといけない。そうしてそのDBには人柱みたいなDBAが存在する。あれをどうにかしたい。
#dbts2025 「トランザクション分離レベル – 主要RDBMS製品の比較(Oracle, SQL Server, MySQL, PostgreSQL)」のアーカイブ動画が公開されています!
insight-tec.com/news/press/2…
cosol.jp/techdb/2025/07/dbts…
Mitani retweeted
15:30からの15分セッションになります! #dbts2025
いまさらMySQLの非同期レプリケーションでのHAの難しさについて考える - Speaker Deck
speakerdeck.com/yoku0825/ima…
Mitani retweeted
こちらがPingCAPさん側のAtlassianへのTiDB導入blog。300万テーブル!それを作るのに最適化前は6日間掛かったと。テーブル数増からシャード(TiDBだとRegion)も増えて、作成や管理負荷が膨れ上がる。
pingcap.com/blog/scaling-3-m…


























