--- /dev/null
+๏ปฟ<p dir="rtl">\r
+\r
+\r
+\r
+\r
+25 ืืกืคืืืืจ 2025 โ \r
+<a href="https://www.postgresql.org">ืงืืืฆืช ืืคืืชืื ืืืืืืืืช ืฉื PostgreSQL</a>\r
+\r
+\r
+ืืืืืขื ืืืื ืขื ืฉืืจืืจ \r
+<a href="https://www.postgresql.org/docs/18/release-18.html">PostgreSQL 18</a>\r
+,\r
+ืืืจืกื ืืขืืื ืืช ืืืืชืจ ืฉื ืืกื ืื ืชืื ืื ืืงืื ืคืชืื ืืืชืงืื ืืขืืื.\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+PostgreSQL 18 ืืฉืคืจืช ืืช ืืืืฆืืขืื ืขืืืจ ืขืืืกื ืขืืืื ืืื ืืืืืื ืืืืฆืขืืช ืชืชึพืืขืจืืช I/O ืืืฉื,\r
+ืฉืืืืืื ืฉืืคืืจื ืืืฆืืขืื ืฉื ืขื ืค 3 ืืงืจืืืืช ืืืืืกืื, ืืืืืืื ืื ืืช ืืกืคืจ ืืฉืืืืชืืช ืืืืืืืช ืืืฉืชืืฉ ืืืื ืืงืกืื.\r
+ืืืืืจื ืื ืืฆืืฆืืช ืืช ืืืคืจืขื ืืชืืืืื ืฉืืจืื ืืจืกื ืจืืฉืืช, ืืงืฆืจืช ืืช ืืื ื ืืฉืืจืื ืืืคืืืชื ืืช ืืืื ืื ืืจืฉ ืืืืืข ืืืืฆืืขืื ืืฆืคืืืื ืืืืจ ืกืืื ืืฉืืจืื.\r
+\r
+\r
+ืืคืชืืื ืืจืืืืืื ืืชืืื ืืช ืืืฉืืช ืโPostgreSQL 18, ืืืื ืขืืืืืช ืืืืฉืืืช ืืืจืืืืืืืช (Virtual Generated Columns) ืฉืืืฉืืืช ืขืจืืื ืืืื ืฉืืืืชื,\r
+\r
+\r
+ืืคืื ืงืฆืืืช\r
+ <code>uuidv7()</code> \r
+ืืืืืืืชืืช ืืืกืื ื ืชืื ืื ืืืกืคืงืช ืืื ืืืงืก ืืงืจืืื ืืืืจืื ืืืชืจ ืขืืืจ UUID.\r
+\r
+\r
+PostgreSQL 18 ืื ืืงืื ืขื ืืื ืืืจืฆืื ืขื ืืขืจืืืช\r
+SSO (SingleโSign On)\r
+ ืืขืืจืช ืชืืืื ืืืืืืช OAuth 2.0.\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+"ืืืืืฅ ืฉื ืงืืืืช ืืงืื ืืคืชืื ืืืืืืืืช ืืขืฆื ืื ืืืืืจื ืฉื PostgreSQL ืืขืืืจ ืื ืืกืคืง ืชืืื ืืช ืฉืืืืขืืช ืื ืืืฉืชืืฉืื ืืืื ืฉืื ืชืื ืื ืฉืืื ื ืืฆืืื", ืืืจ\r
+Jonathan Katz, ืืืจ ืโPostgreSQL Core Team.\r
+"PostgreSQL 18 ื ืื ื ืขื ืืืืกืืืจืื ืืืจืืื ืืืขืฉืืจื ืฉื ืืคืจืืืงื ืืืชื ืืืืืืช ื ืืืื ื ืชืื ืื ืืืื ื ืืืกืื ื, ืชืื ืืืฉื ืืจืืืช ืืืืื ืขืืืกื ืืขืืืื ืฉืืื ืืืื ืืชืืื ืืื."\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+PostgreSQL ืืืช ืืขืจืืช ื ืืืื ื ืชืื ืื ืืืฉื ืืช ืืืืืขื ืืืืื ืืช, ืืืืกื ื ืืืืืืืช ืืจืืื ืฉืื, ื ืื ืืช ืืืขื 25 ืฉื ืืช ืคืืชืื ืงืื ืคืชืื ืืงืืืืช ืืืคืชืืื ืืขืืืืืช ืืืคืื ืืืกืืก ื ืชืื ืื ืจืืฆืืื ื ืืคืชืื ืืืืขืืฃ ืขื ืืจืืื ืื ืืื ืืืืืื.\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืืืื ืโAsynchronous I/O\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+PostgreSQL ืืกืชืืื ืืขืืจ ืขื ืื ืื ืื ื readahead ืฉื ืืขืจืืช ืืืคืขืื ืืื ืืืืืฅ ืฉืืืคืช ื ืชืื ืื.\r
+ืขื ืืืช, ืืืืืื ืฉืืืขืจืืืช ืืืคืขืื ืืื ืืืข ืขื ืืคืืกื ืืืืฉื ืืืืืืืืื ืืืกื ืื ืชืื ืื, ืื ืืื ื ืชืืื ืืกืืืืืช ืืฆืคืืช ืืืื ื ืชืื ืื ืืืืจืฉื, ืื ืฉืืืืื ืืืืฆืืขืื ืคืืืช ืืืืืืื ืชืืช ืขืืืกื ืขืืืื ืจืืื.\r
+</p>\r
+\r
+\r
+\r
+\r
+<p dir="rtl">\r
+PostgreSQL 18 ืืฆืืื ืชืชึพืืขืจืืช ืืืฉื ืฉื ืงืื/ืคืื ืืกืื ืืจืื ื (AIO) ืฉื ืืขืื ืืืคื ืืืืืื ืืื.\r
+AIO ืืืคืฉืจืช ื-PostgreSQL ืืื ืคืืง ืืื ืืงืฉืืช I/O ืืืงืืื, ืืืงืื ืืืืชืื ืฉืื ืืงืฉื ืชืกืชืืื ืืจืฆืฃ. ืืื ืืื ืืจืืืื ืืช ืื ืื ืื ื-readahead ืืงืืื ืืืฉืคืจืช ืืช ืืชืคืืงื ืืืืืืช.\r
+ื-PostgreSQL 18 ื ืชืืืืช ืคืขืืืืช AIO ืืืื ืกืจืืงืืช ืจืฆืืคืืช (sequential scans), ืกืจืืงืืช bitmap ืฉื ืขืจืืืช ืืืืื (bitmap heap scans) ื-\r
+ <code>VACUUM</code>\r
+.\r
+ืืืื ืืืฆืืขืื ืืจืื ืฉืืคืืจืื ืฉื ืขื ืคื 3 ืืชืจืืืฉืื ืืกืืืืื.\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+ืืืืจืช\r
+<a href="https://www.postgresql.org/docs/18/runtime-config-resource.html#GUC-IO-METHOD"><code>io_method</code></a>\r
+ืืืืฉื ืืืคืฉืจืช ืืืืืจ ืืื ืฉืืืืช AIO, ืืืื \r
+ <code>worker</code>\r
+ ื-\r
+ <code>io_uring</code>\r
+, ืื ืืฉืืืจ ืขื ืืืชื ืืืืช ืื ืืืืืช ืฉื PostgreSQL ืืืืฆืขืืช ืืืืืจื\r
+ <code>sync</code>\r
+.\r
+ืืขืช ืงืืืืื ืขืื ืคืจืืืจืื ืฉืืืื ืืฉืงืื ืืืืื ืืื ืขื AIO, ืืขืืืื ื ืืชื ืืงืจืื ื\r
+<a href="https://www.postgresql.org/docs/18/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-IO">ืชืืขืื</a>.\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืฉืืจืืืื ืืืืจืื ืืืชืจ ืืืืฆืืขืื ืืืืื ืืืชืจ ืืืืจ ืืฉืืจืื\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+ืืืคืืื ืืจืืื ืโPostgreSQL ืืื ืืฆืืจื ืืืืกืื ืฉื \r
+<a href="https://www.postgresql.org/docs/18/planner-stats.html">ืกืืืืกืืืงืืช</a>\r
+ืืืกืืืขืืช ืืืืืจ ืืช ืชืื ืืช ืืฉืืืืชื ืืืขืืื ืืืืชืจ.\r
+\r
+\r
+ืืคื ื PostgreSQL 18, ืกืืืืกืืืงืืช ืืื ืื ื ืฉืืจื ืืขืช \r
+<a href="https://www.postgresql.org/docs/18/pgupgrade.html">ืฉืืจืื ืืจืกื ืจืืฉืืช</a>,\r
+ืื ืฉืขืืื ืืื ืืืจืื ืืืจืืื ืืื ืืช ืืืืฆืืขื ืฉืืืืชืืช ืืืขืจืืืช ืขืืืกืืช ืขื ืืกืืื\r
+\r
+\r
+<a href="https://www.postgresql.org/docs/18/sql-analyze.html"><code>ANALYZE</code></a>.\r
+\r
+\r
+ืโPostgreSQL 18 ื ืืชื ืืฉืืจ ืืช ืกืืืืกืืืงืืช ืฉื ืืืชืื ื ืืืืื ืฉืืจืื ืืจืกื ืจืืฉืืช, ืืืื ืืกืืืข ืืืกืืก ืื ืชืื ืื ืืืฉืืืจื ืืืืืข ืืืจ ืืืชืจ ืืืืฆืืขืื ืืฆืคืืืื.\r
+\r
+\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+ืื ืืกืฃ, ืืื ืืฉืืจืื \r
+<a href="https://www.postgresql.org/docs/18/pgupgrade.html"><code>pg_upgrade</code></a>\r
+ ืงืืื ืืกืคืจ ืฉืืคืืจืื ืโPostgreSQL 18,\r
+ืืจืืืช ืฉืืจืืืื ืืืืจืื ืืืชืจ ืืืฉืจ ืืืกื ืื ืชืื ืื ืืฉ ืืจืื ืืืืืืงืืื (ืืืื ืืืืืืช ืืจืฆืคืื).\r
+ืืืืืจื ืื ืื ืืืคืฉืจืช ืโ\r
+<code>pg_upgrade</code> \r
+ืืืจืืฅ ืืืืงืืช ืืืงืืื ืืืชืื ืืคืจืืืจ \r
+<code>--jobs</code>\r
+, ืืืืกืืคื ืืช ืืืื \r
+<code>--swap</code>\r
+ืฉืืืฆืข ืืืืคื ืืื ืกืคืจืืืช ืืฉืืจืื ืืืงืื ืืขืชืงื, ืฉืืคืื ืื ืงืืฉืืจ ืงืืฆืื.\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืฉืืคืืจื ืืืฆืืขืื ืืืืืื ืืืืฆืืข ืฉืืืืชืืช\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+PostgreSQL 18 ืืืฉืืื ืืืืืฅ ืืช ืืืฆืืขื ืืฉืืืืชืืช ืืขืืจืช ืืืืืืช ืฉืืืจืืืช ืืช ืืขืืืกืื ืฉืืื ืืืืคื ืืืืืืื. \r
+ืืืืืจื ืื ืืฆืืื ืืืคืืฉื โskip scanโ ืขื \r
+<a href="https://www.postgresql.org/docs/18/indexes-multicolumn.html">ืืื ืืงืกื B-tree ืืจืืื ืขืืืืืช</a>\r
+, ืืืฉืคืจืื ืืช ืืื ืืืืฆืืข ืขืืืจ ืฉืืืืชืืช ืฉืืืืืืช ืขื ืชื ืื = ืืืืช ืื ืืืชืจ ืขืืืืช ืืคืจืืคืืงืก ืฉื ืืืื ืืงืก.\r
+ืืื ืืืืื ืื ืืืคืื ืฉืืืืชืืช ืืืฉืชืืฉืืช ืืชื ืื \r
+<code>OR</code>\r
+ \r
+ ืืชืื ืกืขืืฃ \r
+<code>WHERE</code>\r
+ ืื ืฉืืืืื ืืืฉืชืืฉ ืืืื ืืงืก, ืืืจ ืฉืืืืื ืืืืฆืืข ืืืืจ ืืฉืืขืืชืืช.\r
+ื ืืกืฃ ืขื ืื, ืืืฆืขื ืฉืืคืืจืื ืจืืื ืืืืคื ืฉืื PostgreSQL ืืชืื ื ืช ืืืืฆืขืช ืืืืืจืื ืืื ืืืืืืช (joins) โ ืืืืฆืช\r
+<code>hash join</code>\r
+ ืืขื ืืชื ืืคืฉืจืืช ื-\r
+<code>merge join</code>\r
+ ืืืฉืชืืฉ ืืืืื ืื ืืื ืงืจืื ืืืืื.\r
+PostgreSQL 18 ืชืืืืช ืื ืืื ืืื ืืงืืืืืช ืฉื \r
+<a href="https://www.postgresql.org/docs/18/gin.html">ืืื ืืงืกื GIN</a>\r
+\r
+\r
+, ืืืฆืืจืคืช ืืื ืืืื ืืงืกื B-tree ื-\r
+\r
+\r
+ ืฉืืืจ ืชืืืืื ืืืืืืช ืื.\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+ืืืืืจื ืื ืื ืืจืืืื ืืช ืืชืืืื ืฉื PostgreSQL ืืืืฆืช ืืืืจื, ืืืื ืชืืืื ืืืื ืืจืื ืืืงืืช ืืขืื ARM NEON ื-SVE ืขืืืจ ืืคืื ืงืฆืื\r
+<code>popcount</code>\r
+, ืืืฉืืฉืช ืืช\r
+<a href="https://www.postgresql.org/docs/18/functions-bitstring.html"><code>bit_count</code></a>\r
+\r
+\r
+ ืืืืืืืช ืคื ืืืืืช ื ืืกืคืืช.\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืฉืืคืืจ ืืืืืืช ืืืคืชืืื\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+PostgreSQL 18 ืืฆืืื ืขืืืืืช ืืืืฉืืืช ืืืจืืืืืืืช (Virtual Generated Columns) ืฉืืืฉืืืช ืขืจืืื ืืืื ืืจืฆืช ืืฉืืืืชื ืืืงืื ืืืืกื ืืืชื. ืืื ืืขืช ืืจืืจืช ืืืืื ืขืืืจ ืขืืืืืช ืืืืฉืืืช. ืื ืืกืฃ, ื ืืชื ืืขืช ืืฉืืคื ืืืืืช ืขืืืืืช ืืืืฉืืืช ืืืืืกื ืืช.\r
+</p>\r
+<p dir="rtl">\r
+ืืืืืจื ืื ืืืกืืคื ืืคืฉืจืืช ืืืฉืช ืื ืืขืจืืื ืืงืืืืื (\r
+<code>OLD</code>\r
+) ืืื ืืขืจืืื ืื ืืืืืื (\r
+<code>NEW</code>\r
+) ืืกืขืืฃ\r
+<a href="https://www.postgresql.org/docs/18/dml-returning.html"><code>RETURNING</code></a>\r
+ืขืืืจ ืืคืงืืืืช\r
+<code>INSERT</code>\r
+,\r
+<code>UPDATE</code>\r
+,\r
+<code>DELETE</code>\r
+ื-\r
+<code>MERGE</code>\r
+.\r
+PostgreSQL 18 ืืืกืืคื ืื ืืฆืืจืช UUIDv7 ืืืืฆืขืืช ืืคืื ืงืฆืื\r
+<a href="https://www.postgresql.org/docs/18/functions-uuid.html#FUNC_UUID_GEN_TABLE"><code>uuidv7()</code></a>\r
+ , ืืืืคืฉืจืช ืืืคืืง ืืืื UUID ืืงืจืืืื ืืืกืืืจืื ืืคื ืืืชืืช ืืื, ืืืืืช ืืกืืจืืืืืช ืงืืฉืื ื ืืขืืืืช ืืืชืจ.\r
+PostgreSQL 18 ืืืืืช ืืช\r
+<a href="https://www.postgresql.org/docs/18/functions-uuid.html#FUNC_UUID_GEN_TABLE"><code>uuidv4()</code></a>\r
+ ืืืื ืื ื-\r
+<code>gen_random_uuid()</code>\r
+.\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+PostgreSQL 18 ืืืกืืคื\r
+<a href="https://www.postgresql.org/docs/devel/sql-createtable.html#SQL-CREATETABLE-PARMS-UNIQUE"> ืืืืืฆืื ืืืคืืจืืืื</a>\r
+\r
+\r
+ - ืืืืืฆืื ืขื ืคื ื ืชืืืืื- ื-\r
+<code>PRIMARY KEY</code>\r
+\r
+\r
+ ืื-\r
+<code>UNIQUE</code>\r
+- ืืืืฆืขืืช ืืกืขืืฃ\r
+<code>WITHOUT OVERLAPS</code>\r
+\r
+\r
+, ืืื ื-\r
+<code>FOREIGN KEY</code>\r
+ ืืืืฆืขืืช ืืกืขืืฃ\r
+<code>PERIOD</code>\r
+.\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+ืืืกืืฃ, PostgreSQL 18 ืืงืื ืขื ืืฆืืจืช ืืืืจืช ืืกืืืื ืฉื ืืืืช ืืืฅ (foreign table) ืขื ืืกืืก ืืืืืจื ืฉื ืืืื ืืงืืืืช ืืืืฆืขืืช ืืคืงืืื\r
+<a href="https://www.postgresql.org/docs/18/sql-createforeigntable.html"><code>CREATE FOREIGN TABLE ... LIKE</code></a>\r
+.\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืขืืืื ืืงืกื ืืฉืืคืจ\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+PostgreSQL 18 ืืงืื ืืืืืฆื ืืช ืขืืืื ืืืงืกื ืืขืืจืช ืืกืคืจ ืฉืืคืืจืื ืืืฉืื. \r
+\r
+\r
+ืืืืืจื ืื ืืืกืืคื ืืช ืืืืื\r
+<a href="https://www.postgresql.org/docs/18/collation.html#COLLATION-MANAGING-STANDARD"><code>PG_UNICODE_FAST</code></a>\r
+\r
+\r
+, ืืืกืคืง ืกืื ืืืงื ืืืื ืฉื Unicode ืืืืจืืช ืจืืฉืืืช (case) ืืืืงืืื ืืกืืืข ืืืืืฅ ืืฉืืืืืช ืจืืืช.\r
+\r
+\r
+ืื ืืืื ืืช ืคืื ืงืฆืืืช\r
+<code>upper</code>\r
+ ื-\r
+<code>lower</code>\r
+, ืืื ืืช ืืคืื ืงืฆืื ืืืืฉื\r
+<a href="https://www.postgresql.org/docs/18/functions-string.html#FUNCTIONS-STRING-OTHER"><code>casefold</code></a>\r
+\r
+\r
+ ืืืฉืืืืืช ืฉืืื ื ืชืืืืืช ืจืืฉืืืช.\r
+ืื ืืกืฃ, PostgreSQL 18 ืชืืืืช ืืขืช ืืืืฆืืข ืืฉืืืืืช\r
+<code>LIKE</code>\r
+ ืขื ืืงืกื ืืืฉืชืืฉ ื\r
+<a href="https://www.postgresql.org/docs/18/collation.html#COLLATION-NONDETERMINISTIC">ืืืื ืื-ืืืจืืื ืืกืื</a>\r
+\r
+\r
+, ืื ืฉืืคืฉื ืืืฆืืข ืืชืืืืช ืชืื ืืช ืืืจืืืืช ืืืชืจ.\r
+ืืืืืจื ืื ืื ืืฉื ื ืืช\r
+\r
+\r
+<a href="https://www.postgresql.org/docs/18/textsearch.html">ืืืคืืฉ ืืืงืกื ืืืื</a>\r
+ ืื ืฉืืฉืชืืฉ ืืกืคืง ืืืืื (collation provider) ืืจืืจืช-ืืืืื ืฉื ืืกืืก ื ืชืื ืื ืืืงืื ืชืืื ืืืฉืชืืฉ ื-\r
+<code>libc</code>\r
+, ืฉืื ืื ืฉืขืฉืื ืืืจืืฉ ืืื ืืืงืก ืืืืฉ ืฉื ืื ืืื ืืงืกื\r
+\r
+\r
+<a href="https://www.postgresql.org/docs/18/textsearch-tables.html#TEXTSEARCH-TABLES-INDEX"> ืืืคืืฉ ืืืงืกื ืืืื</a>\r
+ ืืืื ืืงืกื\r
+<a href="https://www.postgresql.org/docs/18/pgtrgm.html#PGTRGM-INDEX"><code>pg_trgm</code></a>\r
+ ืืืืจ ืืจืฆืช\r
+<a href="https://www.postgresql.org/docs/18/pgupgrade.html"><code>pg_upgrade</code></a>\r
+.\r
+</p>\r
+\r
+\r
+<h3 dir="rtl">\r
+ืืืืืช ืืืืืื\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+PostgreSQL 18 ืืฆืืื ืืืืืช\r
+<a href="https://www.postgresql.org/docs/18/auth-oauth.html"><code>oauth</code></a>\r
+, ืืืืคืฉืจ ืืืฉืชืืฉืื ืืืฆืข ืืืืืช ืืืืฆืขืืช ืื ืื ืื ื OAuth 2.0 ืื ืชืืืื ืืจื ืืจืืืืช PostgreSQL.\r
+ืื ืืกืฃ, PostgreSQL 18 ืืืืืช ืืืืืฆืื ืขืืืจ\r
+<a href="https://www.postgresql.org/docs/18/pgcrypto.html#PGCRYPTO-OPENSSL-SUPPORT-FUNCS">ืืฆื FIPS</a>\r
+, ืืืืกืืคื ืืช ืืคืจืืืจ\r
+<a href="https://www.postgresql.org/docs/18/runtime-config-connection.html#GUC-SSL-TLS13-CIPHERS"><code>ssl_tls13_ciphers</code></a>\r
+ ืืืืืจืช ืืขืจืื ืืฆืคื ืื (cipher suites) ืฉื TLS v1.3 ืืฆื ืืฉืจืช.\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+ืืืืืจื ืื ืืืจืืื ืขื ืื ืื ืื ืืืืืืช ืืกืืกืื\r
+<code>md5</code>\r
+ ืืืืืฉื (deprecated), ืืืื ืืืกืจ ืืืืช ืืืืืืจืืช ืืืืืช. \r
+ืื ื ืืจืฉ ืืื ืืืืืช ืืืืกืก ืกืืกืื ื-PostgreSQL, ืืฉืชืืฉื ืืืืืืช \r
+<a href="https://www.postgresql.org/docs/18/auth-password.html"><code>SCRAM</code></a>\r
+ืฉื PostgreSQL 18.\r
+\r
+\r
+</p>\r
+<p dir="rtl">\r
+SCRAM ืชืืืืช ืื ื-SCRAM passthrough ืื ืขื\r
+<a href="https://www.postgresql.org/docs/18/postgres-fdw.html"><code>postgres_fdw</code></a>\r
+ ืืื ืขื\r
+<a href="https://www.postgresql.org/docs/18/dblink.html"><code>dblink</code></a>\r
+ ืืฆืืจื ืืืืืช ืืื ืืืคืขื PostgreSQL ืืจืืืงืื.\r
+ ืื ืืกืฃ, \r
+<a href="https://www.postgresql.org/docs/18/pgcrypto.html"><code>pgcrypto</code></a>\r
+\r
+\r
+ ืชืืืืช ืืขืช ื\r
+<a href="https://www.postgresql.org/docs/18/pgcrypto.html#PGCRYPTO-CRYPT-ALGORITHMS">SHA-2 ืืฆืืจื ืืืืื ืกืืกืืืืช</a>\r
+.\r
+</p>\r
+\r
+\r
+<h3 dir="rtl">\r
+ืฉืืคืื (Replication)\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+\r
+\r
+PostgreSQL 18 ืชืืืืช ืืืืืื ืขื ืืชื ืืฉืืืืช ืืชืืื ืืฉืืคืื ืืืื (logical replication write conflicts) ืืืืื ืื (logs) ืืืชืฆืืื\r
+<a href="https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-SUBSCRIPTION-STATSl"><code>pg_stat_subscription_stats</code></a>\r
+\r
+\r
+. \r
+ืื ืืกืฃ,\r
+<a href="https://www.postgresql.org/docs/18/sql-createsubscription.html"><code>CREATE SUBSCRIPTION</code></a>\r
+\r
+\r
+ ืืฉืชืืฉืช ืืขืช ืืืจืืจืช ืืืื ืืืืจืื ืืงืืืืืช (parallel streaming) ืืืืฉืื ืขืกืงืืืช, ืื ืฉืืืื ืืฉืคืจ ืืช ืืืืฆืืขืื. \r
+ืืืื \r
+\r
+\r
+<a href="https://www.postgresql.org/docs/18/app-pgcreatesubscriber.html"><code>pg_createsubscriber</code></a>\r
+ ื ืืกืฃ ืืืื\r
+<code>--all</code>\r
+\r
+\r
+, ืื ืฉื ืืชื ืืืฆืืจ ืจืคืืืงืืช ืืืืืืช ืืื ืืกืื ืื ืชืื ืื ืืืืคืข ืืคืงืืื ืืืช.\r
+PostgreSQL 18 ืืืคืฉืจืช ืื\r
+<a href="https://www.postgresql.org/docs/18/runtime-config-replication.html#GUC-IDLE-REPLICATION-SLOT-TIMEOUT">ืืืกืืจ ืืืืืืืืช ืกืืืื ืฉืืคืื ืื ืคืขืืืื (idle replication slots)</a>\r
+ ืืื ืืกืืืข ืืื ืืขืช ืืืืจื ืฉื ืืืชืจ ืืื ืงืืืฆื WAL ืืฆื ืืืคืจืกื.\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืชืืืืงื ืืชืฆืคืืืช (Observability)\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+\r
+\r
+PostgreSQL 18 ืืฉืคืจืช ืืช ืืกืืจืืืืืช ื- \r
+<a href="https://www.postgresql.org/docs/18/routine-vacuuming.html"><code>VACUUM</code></a>\r
+- ืขื-ืืื ืืงืคืื ืืืืื ืฉื ืืืชืจ ืืคืื ืืืืื ืคืขืืืืช\r
+<code>VACUUM</code>\r
+ ืจืืืืืช, ืื ืฉืืคืืืช ืชืงืืจื ืืชืืจื ืืืฆืืื ืืืืจืฉืื ืคืขืืืืช\r
+<code>VACUUM</code>\r
+ ืืืจืกืืืืืช.\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+PostgreSQL 18 ืืืกืืคื ืคืจืืื ื ืืกืคืื ื-\r
+<a href="https://www.postgresql.org/docs/18/using-explain.html"><code>EXPLAIN</code></a>\r
+, ืืืกืคืง ืืืืข ืขื ืืืฆืืข ืชืืื ืืช ืืฉืืืืชื, ืืืขืช ืืฆืืื ืืืืืืืืช ืืื ืืืคืจืื (ืืืืืช ืืืืกืื ืืืกืืกืืช) ื ืืืฉืื ืืขืช ืืจืฆืช\r
+<code>EXPLAIN ANALYZE</code>\r
+. \r
+ืื ืืกืฃ,\r
+<code>EXPLAIN ANALYZE</code>\r
+ ืืฆืื ืืขืช ืืื ืคื ืืืช ืืืื ืืงืก ืืชืืฆืขืืช ืืืืื ืกืจืืงืช ืืื ืืงืก, ื-\r
+<code>EXPLAIN ANALYZE VERBOSE</code>\r
+ ืืืื ืกืืืืกืืืงืืช ืขื CPU, โWAL ืืืื ื ืงืจืืื ืืืืฆืขืื.\r
+PostgreSQL 18 ืืืืืช ืืืชืจ ืืืืข ื\r
+<a href="https://www.postgresql.org/docs/18/monitoring-stats.html#MONITORING-PG-STAT-ALL-TABLES-VIEW"><code>pg_stat_all_tables</code></a>\r
+- ืขื ืืื ืฉืืืงืืฉ ื-\r
+<code>VACUUM</code>\r
+ ืืืคืขืืืืช ืงืฉืืจืืช, ืืื ืกืืืืกืืืงืืช ืืคื-ืืืืืจ ืขื ื ืืฆืื I/O ื-WAL.\r
+</p>\r
+\r
+\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืฉืื ืืืื ืืืืืื ื ืืกืคืื\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+ืืกืื ื ืชืื ืื ืฉืืืืชืืืื ืขื\r
+<a href="https://www.postgresql.org/docs/18/app-initdb.html"><code>initdb</code></a>\r
+ ืฉื PostgreSQL 18 ืืืคืขืืื ืืืจืืจืชึพืืืื ืขื ืืืืงืืช page checksums. \r
+ืืืืจ ืขืฉืื ืืืฉืคืืข ืขื ืฉืืจืืืื ืืืกืืกื ื ืชืื ืื ืฉืืื ืืืืงืืช page checksums ืืื ื ืืืคืขืืืช: ืืืงืจื ืืื, ืืขืช ืฉืืืืฉ ื\r
+<a href="https://www.postgresql.org/docs/18/pgupgrade.html"><code>ึพpg_upgrade</code></a>\r
+ืืืื ืฆืืจื ืืืฆืืจ ืืกืืก ื ืชืื ืื PostgreSQL 18 ืืืฉ ืขื ืืืคืฉืจืืช\r
+<code>--no-data-checksums</code>\r
+.\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+PostgreSQL 18 ืืฆืืื ืื ืืจืกื ืืืฉื (3.2) ืฉื ืคืจืืืืงืื ื-WIRE ืฉื PostgreSQL - ืืืจืกื ืืืืฉื ืืจืืฉืื ื ืืื \r
+PostgreSQL 7.4 (2003). \r
+\r
+\r
+ืืกืคืจืืื\r
+<a href="https://www.postgresql.org/docs/18/libpq-connect.html"><code>libpq</code></a>\r
+ ืขืืืื ืืฉืชืืฉืช ืืืจืกื 3.0 ืืืจืืจืชึพืืืื, ืืขืื ืฉ clients (ืืืฉื ืืจืืืืจืื, ืืืืจืื, ืคืจืืงืกืื) ืืืกืืคืื ืชืืืื ืืืจืกืช ืืคืจืืืืงืื ืืืืฉื.\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืชืืื ืืช ื ืืกืคืืช\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+ืชืืื ืืช ืืืฉืืช ืืฉืืคืืจืื ืจืืื ืืืจืื ื ืืกืคื ืโPostgreSQL 18 ืฉืขืฉืืืื ืื ืืืืขืื ืืืงืจื ืืฉืืืืฉ ืฉืืื.\r
+ืื ื ืขืืื ื ื-\r
+\r
+\r
+<a href="https://www.postgresql.org/docs/18/release-18.html">ืืขืจืืช ืืืืืืจื</a>\r
+\r
+\r
+ ืืงืืืช ืจืฉืืื ืืืื ืฉื ืชืืื ืืช ืืืฉืืช ืืฉืื ืืช.\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืืืืืช PostgreSQL\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+<a href="https://www.postgresql.org/">PostgreSQL</a>\r
+\r
+\r
+ ืืื ืืกื ื ืชืื ืื ืืงืื ืคืชืื ืืืชืงืื ืืืืชืจ ืืขืืื, ืขื ืงืืืื ืืืืืืืช ืฉื ืืืคื ืืฉืชืืฉืื, ืชืืจืืื, ืืืจืืช ืืืจืืื ืื. \r
+ืืคืจืืืงื PostgreSQL ื ืื ื ืขื ืืขื 40 ืฉื ืืช ืื ืืกื, ืืื ืืืื ืืืจืกืืืช ืงืืืคืืจื ืื, ืืจืงืื, ืืืืฉืื ืืืชืคืชื ืขื ืงืฆื ืืื ืชืืจืืช. \r
+ืขืจืืช ืืชืืื ืืช ืืืฉืืืช ืฉื PostgreSQL ืื ืจืง ืชืืืืช ืืขืจืืืช ื ืชืื ืื ืงื ืืื ืืืช ืืืืืืืช, ืืื ืขืืื ืขืืืื ืืืืคืืื ืื ืฉื ืืกืื ื ืชืื ืื ืืชืงืืืื ,ืืืืืืช ืืจืืื, ืืืืื ืืืฆืืืืช.\r
+</p>\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืงืืฉืืจืื\r
+</h3>\r
+<ul dir="rtl">\r
+<li>\r
+<a href="https://www.postgresql.org/download/"> ืืืจืืืช </a>\r
+</li>\r
+<li>\r
+<a href="https://www.postgresql.org/docs/18/release-18.html"> ืืขืจืืช ืืืืืจื </a>\r
+</li>\r
+<li>\r
+<a href="https://www.postgresql.org/about/press/"> ืขืจืืช ืขืืชืื ืืช </a>\r
+</li>\r
+<li>\r
+<a href="https://www.postgresql.org/support/security/"> ืขืืื ืืืืื </a>\r
+</li>\r
+<li>\r
+<a href="https://www.postgresql.org/support/versioning/"> ืืืื ืืืช ืืจืกืืืช </a>\r
+</li>\r
+<li>\r
+<a href="https://www.postgresql.org/about/contact/">ืืฆืืจืช ืงืฉืจ</a>\r
+</li>\r
+<li>\r
+<a href="https://www.postgresql.org/about/donate/">ืชืจืืืืช</a>\r
+</li>\r
+</ul>\r
+\r
+\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืขืื ืขื ืืชืืื ืืช\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+ืืืกืืจืื ืขื ืืชืืื ืืช ืฉืืขืื ืืืืจืืช, ืขืืื ื ืืืฉืืืื ืืืืื:\r
+</p>\r
+\r
+\r
+<ul dir="rtl">\r
+<li>\r
+<a href="https://www.postgresql.org/docs/18/release-18.html">ืืขืจืืช ืืืืืืจื</a>\r
+</li>\r
+<li>\r
+<a href="https://www.postgresql.org/about/featurematrix/">ืืืจืืฆืช ืชืืื ืืช</a>\r
+</li>\r
+</ul>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืืืื ืืืืจืื\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+ืืฉื ื ืืกืคืจ ืืจืืื ืืืืจืื ืืช PostgreSQL18, ืืืื:\r
+\r
+\r
+</p>\r
+\r
+\r
+<ul dir="rtl">\r
+<li>\r
+ืืฃ\r
+<a href="https://www.postgresql.org/download/">ืืืืจืืืช ืืจืฉืื</a>\r
+, ืืืืื ืืชืงืื ืื ืืืื ืขืืจ ืขืืืจ\r
+<a href="https://www.postgresql.org/download/windows/">Windows</a>\r
+,\r
+<a href="https://www.postgresql.org/download/">Linux</a>\r
+,\r
+<a href="https://www.postgresql.org/download/macosx/">macOS</a>\r
+ ืืขืื.\r
+</li>\r
+<li>\r
+<a href="https://www.postgresql.org/ftp/source/v18.0">ืงืื ืืงืืจ</a>\r
+</li>\r
+</ul>\r
+\r
+\r
+<p dir="rtl">\r
+ืืืื ืืืจืืืืช ื ืืกืคืื ืืืื ืื ื-\r
+<a href="http://pgxn.org/">PostgreSQL Extension Network</a>\r
+.\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืชืืขืื\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+PostgreSQL 18 ืืืืข ืขื ืชืืขืื HTML ืืื ืืคื man. \r
+ื ืืชื ืืขืืื ืืชืืขืื ืื ืืืืคื ืืงืืื ืืคืืจืื\r
+<a href="https://www.postgresql.org/docs/18/">HTML</a>\r
+ืืืคืืจืื\r
+<a href="https://www.postgresql.org/files/documentation/pdf/18/postgresql-18-US.pdf">PDF</a>\r
+.\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืจืืฉืืื\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+PostgreSQL ืืฉืชืืฉืช ื\r
+<a href="https://www.postgresql.org/about/licence/">ืจืืฉืืื PostgreSQL</a>\r
+\r
+\r
+ , ืจืืฉืืื โืืชืืจื ืโ ืืืืื ื-BSD. \r
+ืจืืฉืืื ืื, \r
+<a href="http://www.opensource.org/licenses/postgresql/">ืืืืืฉืจ ืขื-ืืื OSI</a>\r
+, ืืืขืจื ืืืืืฉ ืืืืืืืชื ืืขืกืงืื, ืฉืื ืืื ืืื ื ืืืืื ืืช ืืฉืืืืฉ ื-PostgreSQL ืืื ืขื ืืืฉืืืื ืืกืืจืืื ืืงื ืืื ืืื. \r
+ืืฉืืืื ืขื ืชืืืื ืฉื ืืืจืืช ืจืืืช ืืืขืืืช ืฆืืืืจืืช ืขื ืืงืื, ืจืืฉืืื ื ื ืืืคื ืืช PostgreSQL ืืคืืคืืืจืืช ืืืื ืืงืจื ืกืคืงืื ืืืืงืฉืื ืืฉืื ืืกื ื ืชืื ืื ืืืืฆืจืืื ืืื ืืฉืฉ ืืขืืืืช, ื ืขืืืช ืกืคืงืื ืื ืฉืื ืืื ืชื ืื ืจืืฉืื.\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืืฆืืจืช ืงืฉืจ\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+ืืชืจ:\r
+</p>\r
+\r
+\r
+<ul dir="rtl">\r
+<li>\r
+<a href="https://www.postgresql.org/">https://www.postgresql.org</a>\r
+</li>\r
+</ul>\r
+\r
+\r
+<p dir="rtl">\r
+ืืืืืื:\r
+</p>\r
+<ul dir="rtl">\r
+<li>\r
+<a href="mailto:press@postgresql.org">press@postgresql.org</a>\r
+</li>\r
+</ul>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืชืืื ืืช ืืืืื\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+\r
+\r
+Postgres ื-PostgreSQL ืืืืื ืืคืื (Slonik) ืื ืืืื ืกืืื ืื ืืกืืจืืื ืจืฉืืืื ืฉื \r
+<a href="https://www.postgres.ca">PostgreSQL Community Association</a>\r
+\r
+\r
+. ืื ืืจืฆืื ื ืืืฉืชืืฉ ืืกืืื ืื ืืื, ืขืืื ืืฆืืืช ื\r
+\r
+\r
+<a href="https://www.postgresql.org/about/policies/trademarks/">ืืืื ืืืช ืืกืืื ืื ืืืกืืจืืื</a>\r
+.\r
+\r
+\r
+\r
+\r
+</p>\r
+\r
+\r
+\r
+\r
+<h3 dir="rtl">\r
+ืชืืืื ืืจืืื ืืช ืืชืจืืืืช\r
+</h3>\r
+\r
+\r
+<p dir="rtl">\r
+PostgreSQL ื ืื ืืช ืืชืืืืชื ืฉื ืืืจืืช ืจืืืช, ืฉื ืืชื ืืช ืืกืืช ืืืคืชืืื, ืืกืคืงืืช ืืฉืืื ืืืจืื ืื ืืชื ืืช ืื ื ืชืืืื ืืกืคืืช. ืขืืื ืืืฃ \r
+<a href="https://www.postgresql.org/about/sponsors/">ื ืืชื ื ืืืกืืช</a>\r
+ืฉืื ื ืขืืืจ ืืืง ืืชืืืื ืืคืจืืืงื ืืืื.\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+ืืฉ ืื ืงืืืื ืืืืื ืฉื \r
+<a href="https://www.postgresql.org/support/professional_support/">ืืืจืืช ืืืฆืืขืืช ืชืืืื ื-PostgreSQL</a>\r
+, ืืืืขืฆืื ืืืืืื ืืขื ืืืืจืืช ืจื ืืืืืืืช.\r
+\r
+\r
+</p>\r
+\r
+\r
+<p dir="rtl">\r
+ืื ืืจืฆืื ื ืืชืจืื ืชืจืืื ืืกืคืืช ืืงืืืฆืช ืืคืืชืื ืืขืืืืืช PostgreSQL ืื ืืืื ืืืจืืื ื ืืงืืืื ืืืืืจืื ืืื ืืืจืืช ืจืืื, ืื ื ืืงืจ ื\r
+\r
+\r
+<a href="https://www.postgresql.org/about/donate/">ืืฃ ืืชืจืืืืช</a>\r
+ืฉืื ื.\r
+\r
+\r
+</p>
\ No newline at end of file