{"kind": "storage", "major": "18", "item": {"slug": "fork-init", "name": "init fork", "name_zh": "", "category": "\u5173\u7cfb\u5206\u53c9", "summary": "\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u5355\u72ec\u7684\u6587\u4ef6\u4e2d\u3002\u5bf9\u4e8e\u666e\u901a\u5173\u7cfb\uff0c\u8fd9\u4e9b\u6587\u4ef6\u4ee5\u8868\u6216\u7d22\u5f15\u7684 \u6587\u4ef6\u8282\u70b9 \u7f16\u53f7\u547d\u540d\uff0c\u8be5\u7f16\u53f7\u53ef\u5728 pg_class . relfilenode \u4e2d\u627e\u5230\u3002\u4f46\u5bf9\u4e8e\u4e34\u65f6\u5173\u7cfb\uff0c\u6587\u4ef6\u540d\u7684\u5f62\u5f0f\u4e3a t BBB _ FFF \uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u8be5\u6587\u4ef6\u7684\u540e\u7aef\u8fdb\u7a0b\u53f7\uff0c FFF \u662f\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u3002\u65e0\u8bba\u54ea\u79cd\u60c5\u51b5\uff0c\u9664\u4e86\u4e3b\u6587\u4ef6\uff08\u4e5f\u79f0\u4e3b\u5206\u652f\uff09\u4e4b\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a \u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04 \uff08\u89c1 \u7b2c 66.3 \u8282 \uff09\uff0c\u7528\u4e8e\u5b58\u50a8\u8be5\u5173\u7cfb\u53ef\u7528\u7a7a\u95f2\u7a7a\u95f4\u7684\u4fe1\u606f\u3002\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\u5b58\u653e\u5728\u4ee5\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u52a0\u4e0a _fsm \u540e\u7f00\u547d\u540d\u7684\u6587\u4ef6\u4e2d\u3002\u8868\u8fd8\u62e5\u6709 \u53ef\u89c1\u6027\u6620\u5c04 \uff0c\u5b58\u653e\u5728\u5e26\u6709 _vm \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff0c\u7528\u4e8e\u8ddf\u8e2a\u54ea\u4e9b\u9875\u9762\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u3002\u53ef\u89c1\u6027\u6620\u5c04\u5728 \u7b2c 66.4 \u8282 \u4e2d\u6709\u8fdb\u4e00\u6b65\u8bf4\u660e\u3002\u4e0d\u8bb0\u5f55 WAL \u7684\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u652f\uff0c\u79f0\u4e3a\u521d\u59cb\u5316\u5206\u652f\uff0c\u5b58\u653e\u5728\u5e26\u6709 _init \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff08\u89c1 \u7b2c 66.5 \u8282 \uff09\u3002", "aliases": [], "content_hash": "9707135d310d91ab1d30cdd3fc2b9cc4908072f46c24978c67ae20e2853366e0", "versions": {"10": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=10", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v10.23/postgresql-10.23.tar.bz2", "label": "10.23", "major": "10", "channel": "stable", "revision": "94a4b2528372458e5662c18d406629266667c437198160a18cdfd2c4a4d6eee9"}, "sources": [{"url": "https://pg.center/docs/10/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 10 English manual", "sha256": "093b3f235454c71a726c19d2a533af52677d400170ccbc8f4b8cab5cfb19946a", "language": "en", "original_url": "/docs/10/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u72ec\u7acb\u6587\u4ef6\u4e2d\u3002\u666e\u901a\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u53d6\u81ea\u8868\u6216\u7d22\u5f15\u7684 filenode \u7f16\u53f7\uff0c\u53ef\u5728 pg_class.relfilenode \u4e2d\u67e5\u5230\u3002\u4e34\u65f6\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u4e3a tBBB_FFF\uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u6587\u4ef6\u7684\u540e\u7aef ID\uff0cFFF \u662f filenode \u7f16\u53f7\u3002\u9664\u4e3b\u6587\u4ef6\uff08\u4e3b\u5206\u53c9\uff09\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\uff08\u53c2\u89c1\u7b2c 67.3 \u8282\uff09\uff0c\u8bb0\u5f55\u5173\u7cfb\u4e2d\u7684\u53ef\u7528\u7a7a\u95f4\uff0c\u6587\u4ef6\u540d\u4e3a filenode \u52a0 _fsm \u540e\u7f00\u3002\u8868\u8fd8\u5177\u6709 _vm \u540e\u7f00\u7684\u53ef\u89c1\u6027\u6620\u5c04\u5206\u53c9\uff0c\u7528\u4e8e\u8ddf\u8e2a\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u7684\u9875\u9762\uff0c\u8be6\u60c5\u53c2\u89c1\u7b2c 67.4 \u8282\u3002\u65e0\u65e5\u5fd7\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u53c9\uff0c\u5373\u521d\u59cb\u5316\u5206\u53c9\uff0c\u4f7f\u7528 _init \u540e\u7f00\uff08\u53c2\u89c1\u7b2c 67.5 \u8282\uff09\u3002"], "manual_html": "", "manual_path": "/docs/10/storage-file-layout.html", "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/10/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 67.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 67.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 67.5 ).", "/versions/10/facts/0/label": "Fork", "/versions/10/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "c1ef0ce5ffd3d0a3481920d7dd5a2afa37e9ad8809b8ac883e1b121c6251ab54"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}, "11": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=11", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v11.22/postgresql-11.22.tar.bz2", "label": "11.22", "major": "11", "channel": "stable", "revision": "2cb7c97d7a0d7278851bbc9c61f467b69c094c72b81740b751108e7892ebe1f0"}, "sources": [{"url": "https://pg.center/docs/11/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 11 English manual", "sha256": "cbed09542ca2b0c2412d9e0810e5283a7626385224a23e094412d8f62be81985", "language": "en", "original_url": "/docs/11/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u72ec\u7acb\u6587\u4ef6\u4e2d\u3002\u666e\u901a\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u53d6\u81ea\u8868\u6216\u7d22\u5f15\u7684 filenode \u7f16\u53f7\uff0c\u53ef\u5728 pg_class.relfilenode \u4e2d\u67e5\u5230\u3002\u4e34\u65f6\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u4e3a tBBB_FFF\uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u6587\u4ef6\u7684\u540e\u7aef ID\uff0cFFF \u662f filenode \u7f16\u53f7\u3002\u9664\u4e3b\u6587\u4ef6\uff08\u4e3b\u5206\u53c9\uff09\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\uff08\u53c2\u89c1\u7b2c 69.3 \u8282\uff09\uff0c\u8bb0\u5f55\u5173\u7cfb\u4e2d\u7684\u53ef\u7528\u7a7a\u95f4\uff0c\u6587\u4ef6\u540d\u4e3a filenode \u52a0 _fsm \u540e\u7f00\u3002\u8868\u8fd8\u5177\u6709 _vm \u540e\u7f00\u7684\u53ef\u89c1\u6027\u6620\u5c04\u5206\u53c9\uff0c\u7528\u4e8e\u8ddf\u8e2a\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u7684\u9875\u9762\uff0c\u8be6\u60c5\u53c2\u89c1\u7b2c 69.4 \u8282\u3002\u65e0\u65e5\u5fd7\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u53c9\uff0c\u5373\u521d\u59cb\u5316\u5206\u53c9\uff0c\u4f7f\u7528 _init \u540e\u7f00\uff08\u53c2\u89c1\u7b2c 69.5 \u8282\uff09\u3002"], "manual_html": "", "manual_path": "/docs/11/storage-file-layout.html", "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/11/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 69.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 69.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 69.5 ).", "/versions/11/facts/0/label": "Fork", "/versions/11/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "dd049698d2017b09795b4a00e6813773a9dd93069847359d98dc4dca5d3c5edd"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}, "12": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=12", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v12.22/postgresql-12.22.tar.bz2", "label": "12.22", "major": "12", "channel": "stable", "revision": "8df3c0474782589d3c6f374b5133b1bd14d168086edbc13c6e72e67dd4527a3b"}, "sources": [{"url": "https://pg.center/docs/12/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 12 English manual", "sha256": "cb2e82b933c3712adaf61cc5a26d266e9f007698df549f999db9962bb6f39823", "language": "en", "original_url": "/docs/12/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u72ec\u7acb\u6587\u4ef6\u4e2d\u3002\u666e\u901a\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u53d6\u81ea\u8868\u6216\u7d22\u5f15\u7684 filenode \u7f16\u53f7\uff0c\u53ef\u5728 pg_class.relfilenode \u4e2d\u67e5\u5230\u3002\u4e34\u65f6\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u4e3a tBBB_FFF\uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u6587\u4ef6\u7684\u540e\u7aef ID\uff0cFFF \u662f filenode \u7f16\u53f7\u3002\u9664\u4e3b\u6587\u4ef6\uff08\u4e3b\u5206\u53c9\uff09\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\uff08\u53c2\u89c1\u7b2c 69.3 \u8282\uff09\uff0c\u8bb0\u5f55\u5173\u7cfb\u4e2d\u7684\u53ef\u7528\u7a7a\u95f4\uff0c\u6587\u4ef6\u540d\u4e3a filenode \u52a0 _fsm \u540e\u7f00\u3002\u8868\u8fd8\u5177\u6709 _vm \u540e\u7f00\u7684\u53ef\u89c1\u6027\u6620\u5c04\u5206\u53c9\uff0c\u7528\u4e8e\u8ddf\u8e2a\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u7684\u9875\u9762\uff0c\u8be6\u60c5\u53c2\u89c1\u7b2c 69.4 \u8282\u3002\u65e0\u65e5\u5fd7\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u53c9\uff0c\u5373\u521d\u59cb\u5316\u5206\u53c9\uff0c\u4f7f\u7528 _init \u540e\u7f00\uff08\u53c2\u89c1\u7b2c 69.5 \u8282\uff09\u3002"], "manual_html": "", "manual_path": "/docs/12/storage-file-layout.html", "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/12/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 69.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 69.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 69.5 ).", "/versions/12/facts/0/label": "Fork", "/versions/12/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "a54965c191f440e81d56bb1e521dd1bdc4517a399fc5c9ae37c90fbb77919d08"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}, "13": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=13", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v13.23/postgresql-13.23.tar.bz2", "label": "13.23", "major": "13", "channel": "stable", "revision": "6ec3c82726af92b7dec873fa1cdf881eca92a4219787dfad05acb6b10e041fd6"}, "sources": [{"url": "https://pg.center/docs/13/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 13 English manual", "sha256": "2c839dc903912e2950982d087d63ebb1a03d2818c75443e237320784aa6443f8", "language": "en", "original_url": "/docs/13/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u72ec\u7acb\u6587\u4ef6\u4e2d\u3002\u666e\u901a\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u53d6\u81ea\u8868\u6216\u7d22\u5f15\u7684 filenode \u7f16\u53f7\uff0c\u53ef\u5728 pg_class.relfilenode \u4e2d\u67e5\u5230\u3002\u4e34\u65f6\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u4e3a tBBB_FFF\uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u6587\u4ef6\u7684\u540e\u7aef ID\uff0cFFF \u662f filenode \u7f16\u53f7\u3002\u9664\u4e3b\u6587\u4ef6\uff08\u4e3b\u5206\u53c9\uff09\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\uff08\u53c2\u89c1\u7b2c 69.3 \u8282\uff09\uff0c\u8bb0\u5f55\u5173\u7cfb\u4e2d\u7684\u53ef\u7528\u7a7a\u95f4\uff0c\u6587\u4ef6\u540d\u4e3a filenode \u52a0 _fsm \u540e\u7f00\u3002\u8868\u8fd8\u5177\u6709 _vm \u540e\u7f00\u7684\u53ef\u89c1\u6027\u6620\u5c04\u5206\u53c9\uff0c\u7528\u4e8e\u8ddf\u8e2a\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u7684\u9875\u9762\uff0c\u8be6\u60c5\u53c2\u89c1\u7b2c 69.4 \u8282\u3002\u65e0\u65e5\u5fd7\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u53c9\uff0c\u5373\u521d\u59cb\u5316\u5206\u53c9\uff0c\u4f7f\u7528 _init \u540e\u7f00\uff08\u53c2\u89c1\u7b2c 69.5 \u8282\uff09\u3002"], "manual_html": "", "manual_path": "/docs/13/storage-file-layout.html", "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/13/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 69.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 69.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 69.5 ).", "/versions/13/facts/0/label": "Fork", "/versions/13/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "636ad5936c77472c77a7cf584232ce0b1bb9b7857585cde8f23667bad53785f8"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}, "14": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=14", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v14.24/postgresql-14.24.tar.bz2", "label": "14.24", "major": "14", "channel": "stable", "revision": "a7fa7ed3d558172355f51406097a7bd4f6b473be80f311ef7cda96bf383d8897"}, "sources": [{"url": "https://pg.center/docs/14/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 14 English manual", "sha256": "6321dbd90cb8a8dfdc90c0e1caeaf3d480705176bba0428510fd986fe681eae3", "language": "en", "original_url": "/docs/14/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u72ec\u7acb\u6587\u4ef6\u4e2d\u3002\u666e\u901a\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u53d6\u81ea\u8868\u6216\u7d22\u5f15\u7684 filenode \u7f16\u53f7\uff0c\u53ef\u5728 pg_class.relfilenode \u4e2d\u67e5\u5230\u3002\u4e34\u65f6\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u4e3a tBBB_FFF\uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u6587\u4ef6\u7684\u540e\u7aef ID\uff0cFFF \u662f filenode \u7f16\u53f7\u3002\u9664\u4e3b\u6587\u4ef6\uff08\u4e3b\u5206\u53c9\uff09\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\uff08\u53c2\u89c1\u7b2c 70.3 \u8282\uff09\uff0c\u8bb0\u5f55\u5173\u7cfb\u4e2d\u7684\u53ef\u7528\u7a7a\u95f4\uff0c\u6587\u4ef6\u540d\u4e3a filenode \u52a0 _fsm \u540e\u7f00\u3002\u8868\u8fd8\u5177\u6709 _vm \u540e\u7f00\u7684\u53ef\u89c1\u6027\u6620\u5c04\u5206\u53c9\uff0c\u7528\u4e8e\u8ddf\u8e2a\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u7684\u9875\u9762\uff0c\u8be6\u60c5\u53c2\u89c1\u7b2c 70.4 \u8282\u3002\u65e0\u65e5\u5fd7\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u53c9\uff0c\u5373\u521d\u59cb\u5316\u5206\u53c9\uff0c\u4f7f\u7528 _init \u540e\u7f00\uff08\u53c2\u89c1\u7b2c 70.5 \u8282\uff09\u3002"], "manual_html": "", "manual_path": "/docs/14/storage-file-layout.html", "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/14/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 70.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 70.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 70.5 ).", "/versions/14/facts/0/label": "Fork", "/versions/14/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "bf2bcf736ad3f218f5ceb8d9b9a33a780d3fff7698379bc5c32e59125300349c"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}, "15": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=15", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v15.19/postgresql-15.19.tar.bz2", "label": "15.19", "major": "15", "channel": "stable", "revision": "e1a64a87a46b825b88c082e4518161a47aab53c45694964f8ba1df28f7859f89"}, "sources": [{"url": "https://pg.center/docs/15/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 15 English manual", "sha256": "01868f8e03e8749d2c1b113ab2988c459ac44259ce7416677e981e41e33015ea", "language": "en", "original_url": "/docs/15/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u72ec\u7acb\u6587\u4ef6\u4e2d\u3002\u666e\u901a\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u53d6\u81ea\u8868\u6216\u7d22\u5f15\u7684 filenode \u7f16\u53f7\uff0c\u53ef\u5728 pg_class.relfilenode \u4e2d\u67e5\u5230\u3002\u4e34\u65f6\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u4e3a tBBB_FFF\uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u6587\u4ef6\u7684\u540e\u7aef ID\uff0cFFF \u662f filenode \u7f16\u53f7\u3002\u9664\u4e3b\u6587\u4ef6\uff08\u4e3b\u5206\u53c9\uff09\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\uff08\u53c2\u89c1\u7b2c 73.3 \u8282\uff09\uff0c\u8bb0\u5f55\u5173\u7cfb\u4e2d\u7684\u53ef\u7528\u7a7a\u95f4\uff0c\u6587\u4ef6\u540d\u4e3a filenode \u52a0 _fsm \u540e\u7f00\u3002\u8868\u8fd8\u5177\u6709 _vm \u540e\u7f00\u7684\u53ef\u89c1\u6027\u6620\u5c04\u5206\u53c9\uff0c\u7528\u4e8e\u8ddf\u8e2a\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u7684\u9875\u9762\uff0c\u8be6\u60c5\u53c2\u89c1\u7b2c 73.4 \u8282\u3002\u65e0\u65e5\u5fd7\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u53c9\uff0c\u5373\u521d\u59cb\u5316\u5206\u53c9\uff0c\u4f7f\u7528 _init \u540e\u7f00\uff08\u53c2\u89c1\u7b2c 73.5 \u8282\uff09\u3002"], "manual_html": "", "manual_path": "/docs/15/storage-file-layout.html", "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/15/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 73.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 73.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 73.5 ).", "/versions/15/facts/0/label": "Fork", "/versions/15/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "8cf64f19d2ccf6102717accc4b367b6d528783c9b894bf582bbb374c6ee2d5e0"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}, "16": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=16", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v16.15/postgresql-16.15.tar.bz2", "label": "16.15", "major": "16", "channel": "stable", "revision": "c1575341fa7bd40f5274ea465b34390f4dc64cdd0770af327005caaeb9f6b7ed"}, "sources": [{"url": "https://pg.center/docs/16/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 16 English manual", "sha256": "f03daad7b39b5df902b4bc6e6f856e65af368a8507ffbf02199804aa4b0d0bd5", "language": "en", "original_url": "/docs/16/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u72ec\u7acb\u6587\u4ef6\u4e2d\u3002\u666e\u901a\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u53d6\u81ea\u8868\u6216\u7d22\u5f15\u7684 filenode \u7f16\u53f7\uff0c\u53ef\u5728 pg_class.relfilenode \u4e2d\u67e5\u5230\u3002\u4e34\u65f6\u5173\u7cfb\u7684\u6587\u4ef6\u540d\u4e3a tBBB_FFF\uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u6587\u4ef6\u7684\u540e\u7aef ID\uff0cFFF \u662f filenode \u7f16\u53f7\u3002\u9664\u4e3b\u6587\u4ef6\uff08\u4e3b\u5206\u53c9\uff09\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\uff08\u53c2\u89c1\u7b2c 73.3 \u8282\uff09\uff0c\u8bb0\u5f55\u5173\u7cfb\u4e2d\u7684\u53ef\u7528\u7a7a\u95f4\uff0c\u6587\u4ef6\u540d\u4e3a filenode \u52a0 _fsm \u540e\u7f00\u3002\u8868\u8fd8\u5177\u6709 _vm \u540e\u7f00\u7684\u53ef\u89c1\u6027\u6620\u5c04\u5206\u53c9\uff0c\u7528\u4e8e\u8ddf\u8e2a\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u7684\u9875\u9762\uff0c\u8be6\u60c5\u53c2\u89c1\u7b2c 73.4 \u8282\u3002\u65e0\u65e5\u5fd7\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u53c9\uff0c\u5373\u521d\u59cb\u5316\u5206\u53c9\uff0c\u4f7f\u7528 _init \u540e\u7f00\uff08\u53c2\u89c1\u7b2c 73.5 \u8282\uff09\u3002"], "manual_html": "", "manual_path": "/docs/16/storage-file-layout.html", "localization": {"status": "complete", "sources": [], "language": "zh", "original_text": {"/versions/16/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the backend ID of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 73.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 73.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 73.5 ).", "/versions/16/facts/0/label": "Fork", "/versions/16/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "c630b54d2d274aba81e8d8e29b3deaa6fa11ac691520d3cba20442e525cbe4be"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}, "17": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=17", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v17.11/postgresql-17.11.tar.bz2", "label": "17.11", "major": "17", "channel": "stable", "revision": "dd27f2b3c59e73ed14aa3324901242bf69a032a6347805f274e6260322d42979"}, "sources": [{"url": "https://pg.center/docs/17/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 17 English manual", "sha256": "f3de9587ca7d02f068a4307639ba9e24f7e90a722f8e71b496428de6aaba8652", "language": "en", "original_url": "/docs/17/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u5355\u72ec\u7684\u6587\u4ef6\u4e2d\u3002\u5bf9\u4e8e\u666e\u901a\u5173\u7cfb\uff0c\u8fd9\u4e9b\u6587\u4ef6\u4ee5\u8868\u6216\u7d22\u5f15\u7684 \u6587\u4ef6\u8282\u70b9 \u7f16\u53f7\u547d\u540d\uff0c\u8be5\u7f16\u53f7\u53ef\u5728 pg_class . relfilenode \u4e2d\u627e\u5230\u3002\u4f46\u5bf9\u4e8e\u4e34\u65f6\u5173\u7cfb\uff0c\u6587\u4ef6\u540d\u7684\u5f62\u5f0f\u4e3a t BBB _ FFF \uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u8be5\u6587\u4ef6\u7684\u540e\u7aef\u8fdb\u7a0b\u53f7\uff0c FFF \u662f\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u3002\u65e0\u8bba\u54ea\u79cd\u60c5\u51b5\uff0c\u9664\u4e86\u4e3b\u6587\u4ef6\uff08\u4e5f\u79f0\u4e3b\u5206\u652f\uff09\u4e4b\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a \u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04 \uff08\u89c1 \u7b2c 65.3 \u8282 \uff09\uff0c\u7528\u4e8e\u5b58\u50a8\u8be5\u5173\u7cfb\u53ef\u7528\u7a7a\u95f2\u7a7a\u95f4\u7684\u4fe1\u606f\u3002\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\u5b58\u653e\u5728\u4ee5\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u52a0\u4e0a _fsm \u540e\u7f00\u547d\u540d\u7684\u6587\u4ef6\u4e2d\u3002\u8868\u8fd8\u62e5\u6709 \u53ef\u89c1\u6027\u6620\u5c04 \uff0c\u5b58\u653e\u5728\u5e26\u6709 _vm \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff0c\u7528\u4e8e\u8ddf\u8e2a\u54ea\u4e9b\u9875\u9762\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u3002\u53ef\u89c1\u6027\u6620\u5c04\u5728 \u7b2c 65.4 \u8282 \u4e2d\u6709\u8fdb\u4e00\u6b65\u8bf4\u660e\u3002\u4e0d\u8bb0\u5f55 WAL \u7684\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u652f\uff0c\u79f0\u4e3a\u521d\u59cb\u5316\u5206\u652f\uff0c\u5b58\u653e\u5728\u5e26\u6709 _init \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff08\u89c1 \u7b2c 65.5 \u8282 \uff09\u3002"], "manual_html": "", "manual_path": "/docs/17/storage-file-layout.html", "localization": {"status": "complete", "sources": [{"url": "/docs/17/storage-file-layout.html", "method": "same-major semantic node", "sha256": "560012604ef3e72433d00f8d7c10e196fc8d62ce42f886a6d72b9471e74a6257", "language": "zh", "matched_nodes": ["#STORAGE-FILE-LAYOUT/p[8]"]}], "language": "zh", "original_text": {"/versions/17/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 65.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 65.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 65.5 ).", "/versions/17/facts/0/label": "Fork", "/versions/17/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "f70e76a19439281a3b67e2ccd1008eb1a62086b26960374a84825c7aae9f0ef8"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}, "18": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=18", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "https://pg.center/docs/18/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 18 English manual", "sha256": "8cdf46b5af669f41f0a77c2541863d63454ef8fbb44d22a75e576cf1a7efc9c9", "language": "en", "original_url": "/docs/18/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u5355\u72ec\u7684\u6587\u4ef6\u4e2d\u3002\u5bf9\u4e8e\u666e\u901a\u5173\u7cfb\uff0c\u8fd9\u4e9b\u6587\u4ef6\u4ee5\u8868\u6216\u7d22\u5f15\u7684 \u6587\u4ef6\u8282\u70b9 \u7f16\u53f7\u547d\u540d\uff0c\u8be5\u7f16\u53f7\u53ef\u5728 pg_class . relfilenode \u4e2d\u627e\u5230\u3002\u4f46\u5bf9\u4e8e\u4e34\u65f6\u5173\u7cfb\uff0c\u6587\u4ef6\u540d\u7684\u5f62\u5f0f\u4e3a t BBB _ FFF \uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u8be5\u6587\u4ef6\u7684\u540e\u7aef\u8fdb\u7a0b\u53f7\uff0c FFF \u662f\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u3002\u65e0\u8bba\u54ea\u79cd\u60c5\u51b5\uff0c\u9664\u4e86\u4e3b\u6587\u4ef6\uff08\u4e5f\u79f0\u4e3b\u5206\u652f\uff09\u4e4b\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a \u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04 \uff08\u89c1 \u7b2c 66.3 \u8282 \uff09\uff0c\u7528\u4e8e\u5b58\u50a8\u8be5\u5173\u7cfb\u53ef\u7528\u7a7a\u95f2\u7a7a\u95f4\u7684\u4fe1\u606f\u3002\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\u5b58\u653e\u5728\u4ee5\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u52a0\u4e0a _fsm \u540e\u7f00\u547d\u540d\u7684\u6587\u4ef6\u4e2d\u3002\u8868\u8fd8\u62e5\u6709 \u53ef\u89c1\u6027\u6620\u5c04 \uff0c\u5b58\u653e\u5728\u5e26\u6709 _vm \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff0c\u7528\u4e8e\u8ddf\u8e2a\u54ea\u4e9b\u9875\u9762\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u3002\u53ef\u89c1\u6027\u6620\u5c04\u5728 \u7b2c 66.4 \u8282 \u4e2d\u6709\u8fdb\u4e00\u6b65\u8bf4\u660e\u3002\u4e0d\u8bb0\u5f55 WAL \u7684\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u652f\uff0c\u79f0\u4e3a\u521d\u59cb\u5316\u5206\u652f\uff0c\u5b58\u653e\u5728\u5e26\u6709 _init \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff08\u89c1 \u7b2c 66.5 \u8282 \uff09\u3002"], "manual_html": "", "manual_path": "/docs/18/storage-file-layout.html", "localization": {"status": "complete", "sources": [{"url": "/docs/18/storage-file-layout.html", "method": "same-major semantic node", "sha256": "55056edf7352b4e414c1366406a307a72af33aeda7854ef3a8cc1fa5c0db23ad", "language": "zh", "matched_nodes": ["#STORAGE-FILE-LAYOUT/p[8]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 66.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 66.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 66.5 ).", "/versions/18/facts/0/label": "Fork", "/versions/18/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "216a0cb22ef0f15f231d81fc642477590cbc64908af9c49ab6926697003d5b07"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}, "19": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=19", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v19beta4/postgresql-19beta4.tar.bz2", "label": "19beta4", "major": "19", "channel": "preview", "revision": "83157ee9c599d03b2f7a3d73ef3a56ec24e0e79cc2b3501a64d1364f56398c86"}, "sources": [{"url": "https://pg.center/docs/19/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 19 English manual", "sha256": "64a2fe5f641ad71ef53151e63f4eab9f74fcedd6cde5ed49c6b1dac837c2ee2f", "language": "en", "original_url": "/docs/19/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u5355\u72ec\u7684\u6587\u4ef6\u4e2d\u3002\u5bf9\u4e8e\u666e\u901a\u5173\u7cfb\uff0c\u8fd9\u4e9b\u6587\u4ef6\u4ee5\u8868\u6216\u7d22\u5f15\u7684 \u6587\u4ef6\u8282\u70b9 \u7f16\u53f7\u547d\u540d\uff0c\u8be5\u7f16\u53f7\u53ef\u5728 pg_class . relfilenode \u4e2d\u627e\u5230\u3002\u4f46\u5bf9\u4e8e\u4e34\u65f6\u5173\u7cfb\uff0c\u6587\u4ef6\u540d\u7684\u5f62\u5f0f\u4e3a t BBB _ FFF \uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u8be5\u6587\u4ef6\u7684\u540e\u7aef\u8fdb\u7a0b\u53f7\uff0c FFF \u662f\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u3002\u65e0\u8bba\u54ea\u79cd\u60c5\u51b5\uff0c\u9664\u4e86\u4e3b\u6587\u4ef6\uff08\u4e5f\u79f0\u4e3b\u5206\u652f\uff09\u4e4b\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a \u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04 \uff08\u89c1 \u7b2c 66.3 \u8282 \uff09\uff0c\u7528\u4e8e\u5b58\u50a8\u8be5\u5173\u7cfb\u53ef\u7528\u7a7a\u95f2\u7a7a\u95f4\u7684\u4fe1\u606f\u3002\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\u5b58\u653e\u5728\u4ee5\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u52a0\u4e0a _fsm \u540e\u7f00\u547d\u540d\u7684\u6587\u4ef6\u4e2d\u3002\u8868\u8fd8\u62e5\u6709 \u53ef\u89c1\u6027\u6620\u5c04 \uff0c\u5b58\u653e\u5728\u5e26\u6709 _vm \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff0c\u7528\u4e8e\u8ddf\u8e2a\u54ea\u4e9b\u9875\u9762\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u3002\u53ef\u89c1\u6027\u6620\u5c04\u5728 \u7b2c 66.4 \u8282 \u4e2d\u6709\u8fdb\u4e00\u6b65\u8bf4\u660e\u3002\u4e0d\u8bb0\u5f55 WAL \u7684\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u652f\uff0c\u79f0\u4e3a\u521d\u59cb\u5316\u5206\u652f\uff0c\u5b58\u653e\u5728\u5e26\u6709 _init \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff08\u89c1 \u7b2c 66.5 \u8282 \uff09\u3002"], "manual_html": "", "manual_path": "/docs/19/storage-file-layout.html", "localization": {"status": "complete", "sources": [{"url": "/docs/19/storage-file-layout.html", "method": "same-major semantic node", "sha256": "9a13b1f05755a7031d551a429c6d21bff35d965f098909408a39259ca751f156", "language": "zh", "matched_nodes": ["#STORAGE-FILE-LAYOUT/p[8]"]}], "language": "zh", "original_text": {"/versions/19/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 66.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 66.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 66.5 ).", "/versions/19/facts/0/label": "Fork", "/versions/19/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "9a31bbe2052eac4fc5f0db94cea883660f5a4135fde26f17193ed4dc4da5c783"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}, "20": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=20", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/snapshot/dev/postgresql-snapshot.tar.bz2", "label": "20devel", "major": "20", "channel": "devel", "revision": "4d3346909b201ac1648232cf290462a7070c119326f56196f1f0253ed80fae41"}, "sources": [{"url": "https://pg.center/docs/devel/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 20 English manual", "sha256": "d6da97aa52fb525d5de5423d7993a2e42e7675a469110d0753f96dc8a66be1b0", "language": "en", "original_url": "/docs/devel/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u5355\u72ec\u7684\u6587\u4ef6\u4e2d\u3002\u5bf9\u4e8e\u666e\u901a\u5173\u7cfb\uff0c\u8fd9\u4e9b\u6587\u4ef6\u4ee5\u8868\u6216\u7d22\u5f15\u7684 \u6587\u4ef6\u8282\u70b9 \u7f16\u53f7\u547d\u540d\uff0c\u8be5\u7f16\u53f7\u53ef\u5728 pg_class . relfilenode \u4e2d\u627e\u5230\u3002\u4f46\u5bf9\u4e8e\u4e34\u65f6\u5173\u7cfb\uff0c\u6587\u4ef6\u540d\u7684\u5f62\u5f0f\u4e3a t BBB _ FFF \uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u8be5\u6587\u4ef6\u7684\u540e\u7aef\u8fdb\u7a0b\u53f7\uff0c FFF \u662f\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u3002\u65e0\u8bba\u54ea\u79cd\u60c5\u51b5\uff0c\u9664\u4e86\u4e3b\u6587\u4ef6\uff08\u4e5f\u79f0\u4e3b\u5206\u652f\uff09\u4e4b\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a \u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04 \uff08\u89c1 \u7b2c 66.3 \u8282 \uff09\uff0c\u7528\u4e8e\u5b58\u50a8\u8be5\u5173\u7cfb\u53ef\u7528\u7a7a\u95f2\u7a7a\u95f4\u7684\u4fe1\u606f\u3002\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\u5b58\u653e\u5728\u4ee5\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u52a0\u4e0a _fsm \u540e\u7f00\u547d\u540d\u7684\u6587\u4ef6\u4e2d\u3002\u8868\u8fd8\u62e5\u6709 \u53ef\u89c1\u6027\u6620\u5c04 \uff0c\u5b58\u653e\u5728\u5e26\u6709 _vm \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff0c\u7528\u4e8e\u8ddf\u8e2a\u54ea\u4e9b\u9875\u9762\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u3002\u53ef\u89c1\u6027\u6620\u5c04\u5728 \u7b2c 66.4 \u8282 \u4e2d\u6709\u8fdb\u4e00\u6b65\u8bf4\u660e\u3002\u4e0d\u8bb0\u5f55 WAL \u7684\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u652f\uff0c\u79f0\u4e3a\u521d\u59cb\u5316\u5206\u652f\uff0c\u5b58\u653e\u5728\u5e26\u6709 _init \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff08\u89c1 \u7b2c 66.5 \u8282 \uff09\u3002"], "manual_html": "", "manual_path": "/docs/devel/storage-file-layout.html", "localization": {"status": "complete", "sources": [{"url": "/docs/devel/storage-file-layout.html", "method": "same-major semantic node", "sha256": "b9b6648fd2b429a3ecdd8415a850a0a45442ec89c62b4df06cbd7805b21a9363", "language": "zh", "matched_nodes": ["#STORAGE-FILE-LAYOUT/p[8]"]}], "language": "zh", "original_text": {"/summary": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 66.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 66.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 66.5 ).", "/category": "Relation forks", "/versions/20/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 66.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 66.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 66.5 ).", "/versions/20/facts/0/label": "Fork", "/versions/20/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "760459dc6f9f40d059c2b6b97b4f0620ef6589234bdd4f05f26c49f1e58ad54f"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}}}, "snapshot": {"facts": [{"label": "\u5173\u7cfb\u5206\u53c9", "value": "init"}], "tables": [], "related": [{"url": "/wiki/storage/storage-file-layout/?v=18", "label": "\u6570\u636e\u5e93\u6587\u4ef6\u5e03\u5c40"}], "release": {"ref": "https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2", "label": "18.6", "major": "18", "channel": "stable", "revision": "555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f"}, "sources": [{"url": "https://pg.center/docs/18/storage-file-layout.html", "path": "storage-file-layout.html", "label": "PostgreSQL 18 English manual", "sha256": "8cdf46b5af669f41f0a77c2541863d63454ef8fbb44d22a75e576cf1a7efc9c9", "language": "en", "original_url": "/docs/18/storage-file-layout.html"}], "sections": [], "signature": "", "description": ["\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u90fd\u5b58\u50a8\u5728\u5355\u72ec\u7684\u6587\u4ef6\u4e2d\u3002\u5bf9\u4e8e\u666e\u901a\u5173\u7cfb\uff0c\u8fd9\u4e9b\u6587\u4ef6\u4ee5\u8868\u6216\u7d22\u5f15\u7684 \u6587\u4ef6\u8282\u70b9 \u7f16\u53f7\u547d\u540d\uff0c\u8be5\u7f16\u53f7\u53ef\u5728 pg_class . relfilenode \u4e2d\u627e\u5230\u3002\u4f46\u5bf9\u4e8e\u4e34\u65f6\u5173\u7cfb\uff0c\u6587\u4ef6\u540d\u7684\u5f62\u5f0f\u4e3a t BBB _ FFF \uff0c\u5176\u4e2d BBB \u662f\u521b\u5efa\u8be5\u6587\u4ef6\u7684\u540e\u7aef\u8fdb\u7a0b\u53f7\uff0c FFF \u662f\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u3002\u65e0\u8bba\u54ea\u79cd\u60c5\u51b5\uff0c\u9664\u4e86\u4e3b\u6587\u4ef6\uff08\u4e5f\u79f0\u4e3b\u5206\u652f\uff09\u4e4b\u5916\uff0c\u6bcf\u4e2a\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u4e00\u4e2a \u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04 \uff08\u89c1 \u7b2c 66.3 \u8282 \uff09\uff0c\u7528\u4e8e\u5b58\u50a8\u8be5\u5173\u7cfb\u53ef\u7528\u7a7a\u95f2\u7a7a\u95f4\u7684\u4fe1\u606f\u3002\u7a7a\u95f2\u7a7a\u95f4\u6620\u5c04\u5b58\u653e\u5728\u4ee5\u6587\u4ef6\u8282\u70b9\u7f16\u53f7\u52a0\u4e0a _fsm \u540e\u7f00\u547d\u540d\u7684\u6587\u4ef6\u4e2d\u3002\u8868\u8fd8\u62e5\u6709 \u53ef\u89c1\u6027\u6620\u5c04 \uff0c\u5b58\u653e\u5728\u5e26\u6709 _vm \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff0c\u7528\u4e8e\u8ddf\u8e2a\u54ea\u4e9b\u9875\u9762\u5df2\u77e5\u4e0d\u542b\u6b7b\u5143\u7ec4\u3002\u53ef\u89c1\u6027\u6620\u5c04\u5728 \u7b2c 66.4 \u8282 \u4e2d\u6709\u8fdb\u4e00\u6b65\u8bf4\u660e\u3002\u4e0d\u8bb0\u5f55 WAL \u7684\u8868\u548c\u7d22\u5f15\u8fd8\u6709\u7b2c\u4e09\u4e2a\u5206\u652f\uff0c\u79f0\u4e3a\u521d\u59cb\u5316\u5206\u652f\uff0c\u5b58\u653e\u5728\u5e26\u6709 _init \u540e\u7f00\u7684\u5206\u652f\u4e2d\uff08\u89c1 \u7b2c 66.5 \u8282 \uff09\u3002"], "manual_html": "", "manual_path": "/docs/18/storage-file-layout.html", "localization": {"status": "complete", "sources": [{"url": "/docs/18/storage-file-layout.html", "method": "same-major semantic node", "sha256": "55056edf7352b4e414c1366406a307a72af33aeda7854ef3a8cc1fa5c0db23ad", "language": "zh", "matched_nodes": ["#STORAGE-FILE-LAYOUT/p[8]"]}], "language": "zh", "original_text": {"/versions/18/description/0": "Each table and index is stored in a separate file. For ordinary relations, these files are named after the table or index's filenode number, which can be found in pg_class . relfilenode . But for temporary relations, the file name is of the form t BBB _ FFF , where BBB is the process number of the backend which created the file, and FFF is the filenode number. In either case, in addition to the main file (a/k/a main fork), each table and index has a free space map (see Section 66.3 ), which stores information about free space available in the relation. The free space map is stored in a file named with the filenode number plus the suffix _fsm . Tables also have a visibility map , stored in a fork with the suffix _vm , to track which pages are known to have no dead tuples. The visibility map is described further in Section 66.4 . Unlogged tables and indexes have a third fork, known as the initialization fork, which is stored in a fork with the suffix _init (see Section 66.5 ).", "/versions/18/facts/0/label": "Fork", "/versions/18/related/0/label": "Database file layout"}, "fallback_fields": [], "source_language": "en", "original_snapshot_sha256": "216a0cb22ef0f15f231d81fc642477590cbc64908af9c49ab6926697003d5b07"}, "comparison_data": {"fork": "init"}, "comparison_hash": "9a71ceea15a6734051a0b6edce03c9c6693d014169c7559f2e0f39225247c9e8"}, "comparison": {"left": "17", "right": "18", "status": "unchanged", "diff": ""}}