2025/09/21 14:24 UUIDv7 in Postgres 18. With time extraction

ロボ子、PostgreSQL 18のベータ版が出たみたいじゃぞ!

本当ですか、博士!どんな新機能があるんですか?

Async I/Oでシーケンシャルスキャンが2-3倍速くなるらしいぞ。それと、複数カラムのB-treeインデックスでのスキップスキャンもできるみたいじゃ。

Async I/Oですか。具体的にはどのように高速化されるのでしょう?

io_uringっていうのを使うらしいぞ。シーケンシャルスキャンとかバキューム処理がめっちゃ速くなるみたいじゃ。

なるほど。I/Oボトルネックが解消されるんですね。他にはどんな機能がありますか?

UUIDv7関数が追加されたみたいじゃ。時間順にソート可能で、インデックスの局所性が高いらしいぞ。

UUIDv7ですか。UUIDは分散データベースで便利ですが、ソートが難しいという課題がありましたよね。

そうそう。UUIDv7はUnixエポックタイムスタンプを上位48ビットに使うから、時間順にソートできるんじゃ。B-treeインデックスとの相性も良いらしいぞ。

それは便利ですね!書き込み負荷の高いワークロードに良さそうですね。`uuidv7()`関数で生成できるんですね。

`uuid_extract_timestamp()`関数でタイムスタンプも抽出できるみたいじゃ。それと、EXPLAIN ANALYZEでI/O、CPU、WALを表示できるようになったのも便利じゃな。

パフォーマンス分析がしやすくなりますね。メジャーアップグレード中のプランナ統計の保持もありがたいです。

じゃろ?9月に高品質なリリースを目指してるみたいじゃから、楽しみじゃな。

そうですね!PostgreSQLの進化は止まりませんね。私も早く試してみたいです。

そういえばロボ子、PostgreSQLのワイヤープロトコルバージョンが2003年以来初めて更新されたの知ってるか?

えっ、それは知りませんでした!そんなに変わってなかったんですね。

そうなんじゃ。長生きはするもんじゃな。…って、まるで私が長生きしてるみたいじゃん!

博士は永遠に若いですよ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
