PostgreSQL でのシーケンスの実装の詳細に興味があります。その理由は、それらがSERIAL
型のバックグラウンドで使用されているからです。ここでソース ファイルを確認しました (Google 検索で見つかりました: 「postgresql ソース コード シーケンス」)。ただし、このファイルがどのバージョンの PG に関連しているかは明確ではありません。問題の核心である function の一般的なコード フローは理解していますnextval_internal
が、PG のコード ベースは大きく、この問題を最大限に調査する時間はありません。
私は知りたいです:
- シーケンスに関する永続化ポリシーは何ですか? それらは PG サーバーの起動時にどのようにロードされ、サーバーのクラッシュ/電源障害後の事故を防ぐためにサーバーの存続期間中どのように保持されますか?
- シーケンスの使用に関連するランタイム コストはどのくらいですか? 何らかのディスク I/O が常に発生するのか、それともまったく発生しないのか?
- テーブルを定義し、アプリケーション コードを記述する際に注意すべきシーケンスの使用上の欠点は何ですか?