āĻāĻŽāĻžāĻ° āĻŽāĻ¤ā§, āĻ āĻ¤ā§āĻ¤ā§āĻ° āĻ°āĻŋāĻ˛āĻŋāĻā§āĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, PostgreSQL 12-āĻ āĻāĻ āĻŦāĻž āĻĻā§āĻāĻŋ āĻŦā§āĻĒā§āĻ˛āĻŦāĻŋāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¨ā§āĻ (āĻ¯ā§āĻŽāĻ¨ āĻĒāĻžāĻ°ā§āĻāĻŋāĻļāĻ¨ āĻŦāĻž āĻĒā§āĻ°āĻļā§āĻ¨ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻ¤āĻž)āĨ¤ āĻāĻŽāĻŋ āĻāĻāĻŦāĻžāĻ° āĻ°āĻ¸āĻŋāĻāĻ¤āĻž āĻāĻ°ā§āĻāĻŋāĻ˛āĻžāĻŽ āĻ¯ā§ PostgreSQL 12 āĻāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻšāĻ˛ āĻŦā§āĻšāĻ¤ā§āĻ¤āĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻžāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ° āĻ¸āĻŽāĻžāĻ˛ā§āĻāĻ¨āĻžāĻŽā§āĻ˛āĻ āĻĄā§āĻāĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻ¤āĻāĻ¨ āĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž?
āĻāĻŋāĻ¨ā§āĻ¤ā§ PostgreSQL 12 āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻ¨āĻ¯āĻŧ: āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŦāĻ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ¸āĻš, āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻ°āĻ āĻāĻžāĻ˛ āĻāĻžāĻ āĻāĻ°āĻŦā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ āĻāĻĒāĻā§āĻ°ā§āĻĄ!
(āĻ āĻŋāĻ āĻāĻā§, āĻāĻŽāĻ¨āĻāĻŋ āĻ¸ā§āĻā§āĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻŦā§ āĻāĻ āĻ°āĻŋāĻ˛āĻŋāĻā§ āĻāĻāĻŋ āĻ¤āĻ¤āĻāĻž āĻā§āĻ¤āĻŋāĻāĻ° āĻ¨āĻ¯āĻŧ āĻ¯āĻ¤āĻāĻž āĻāĻŽāĻ°āĻž āĻ āĻā§āĻ¯āĻ¸ā§āĻ¤āĨ¤)
PostgreSQL āĻāĻĒāĻā§āĻ°ā§āĻĄ āĻāĻ°āĻž āĻāĻŦāĻ āĻ
āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻ
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ
āĻā§āĻāĻāĻā§āĻāĻŋ āĻāĻžāĻĄāĻŧāĻž āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻāĻĒāĻā§āĻ āĻāĻ°āĻž āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻšāĻŦā§āĨ¤ āĻāĻ¯āĻŧā§āĻ āĻŦāĻāĻ° āĻāĻā§, āĻāĻŽāĻŋ PostgreSQL 9.4 āĻĨā§āĻā§ PostgreSQL 10-āĻ āĻāĻĒāĻā§āĻ°ā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻĻā§āĻā§āĻāĻŋ āĻ¯ā§ āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ 10-āĻ āĻāĻ¨ā§āĻ¨āĻ¤ āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻ¤āĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻāĻ¤ āĻĻā§āĻ°ā§āĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ max_parallel_workers
).
āĻ¸āĻŽā§āĻŽāĻ¤ āĻšāĻ¨, āĻ¯āĻāĻ¨ āĻāĻĒāĻā§āĻ°ā§āĻĄā§āĻ° āĻĒāĻ°ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻ°āĻ āĻāĻžāĻ˛ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻā§ˇ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻā§āĻļāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŦ āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŋ, āĻāĻžāĻ°āĻŖ PostgreSQL āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ āĻ¨ā§āĻ āĻŦā§āĻļāĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻŦāĻ PostgreSQL 12-āĻ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻĒāĻā§āĻ°ā§āĻĄ āĻā§āĻāĻžāĻŦā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻļāĻŋ āĻāĻ°ā§? āĻāĻāĻ¨ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻŦāĻ˛āĻŦ.
āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸ā§āĻāĻ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ
āĻāĻ¨āĻĄā§āĻā§āĻ¸āĻŋāĻ āĻāĻžāĻĄāĻŧāĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻļāĻŋāĻĻā§āĻ° āĻ¯āĻžāĻŦā§ āĻ¨āĻžāĨ¤ āĻāĻ° āĻāĻŋāĻāĻžāĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻ¤āĻĨā§āĻ¯ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨? āĻŽā§āĻ˛āĻŋāĻ PostgreSQL āĻāĻ¨āĻĄā§āĻā§āĻ¸āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ
āĻāĻŽāĻ°āĻž āĻļā§āĻ§ā§ āĻ
āĻĒāĻžāĻ°ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° CREATE INDEX ON some_table (some_column)
, āĻāĻŦāĻ PostgreSQL āĻāĻŽāĻ°āĻž āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻŽāĻžāĻ¨ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻž, āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻāĻŦāĻ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻāĻŋāĻā§ āĻāĻĒ āĻā§ āĻĄā§āĻ āĻ°āĻžāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¨āĻŋāĻā§āĻ āĻāĻžāĻ āĻāĻ°ā§, āĻāĻžāĻĻā§āĻ° āĻŽāĻ¤āĨ¤
āĻāĻŋāĻ¨ā§āĻ¤ā§ PostgreSQL āĻ¸ā§āĻā§āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻā§ - āĻ¤āĻžāĻ°āĻž
PostgreSQL 12 āĻŦāĻŋ-āĻā§āĻ°āĻŋ āĻāĻ¨āĻĄā§āĻā§āĻ¸ā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻžāĻā§ āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°ā§, āĻāĻŦāĻ TPC-C-āĻāĻ° āĻŽāĻ¤ā§ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ āĻĻā§āĻāĻž āĻā§āĻā§ āĻ¯ā§ āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻā§āĻā§, āĻāĻĄāĻŧā§, 40% āĻāĻŽāĨ¤ āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻāĻ°āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻŋ-āĻā§āĻ°āĻŋ āĻāĻ¨āĻĄā§āĻā§āĻ¸ (āĻ āĻ°ā§āĻĨāĻžā§ āĻ˛ā§āĻāĻžāĻ° āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ) āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖā§āĻ āĻ¨āĻ¯āĻŧ, āĻĄā§āĻāĻž āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻ¤ā§āĻ, āĻāĻžāĻ°āĻŖ āĻ¸ā§āĻā§āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ āĻā§āĻ āĻšāĻ¯āĻŧā§ āĻā§āĻā§āĨ¤
āĻ¯ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻŦāĻŋāĻ˛ āĻāĻĒāĻĄā§āĻ āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ OLTP āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ (
āĻāĻŋāĻā§ āĻāĻĒāĻā§āĻ°ā§āĻĄ āĻā§āĻļāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨ā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋ-āĻā§āĻ°āĻŋ āĻ¸ā§āĻāĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ,
PostgreSQL 12 āĻāĻ° āĻāĻ¨ā§āĻĄā§āĻā§āĻ¸āĻŋāĻ āĻĒāĻ°āĻŋāĻāĻžāĻ āĻžāĻŽā§āĻ° āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ°ā§āĻāĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŋāĻā§ āĻāĻžāĻĻā§ āĻāĻŋāĻ˛ -
PostgreSQL 12 āĻāĻŋāĻāĻāĻāĻ¸āĻāĻŋ, āĻāĻŋāĻāĻāĻāĻ¨, āĻāĻŦāĻ āĻāĻ¸āĻĒāĻŋ-āĻāĻŋāĻāĻāĻāĻ¸āĻāĻŋ āĻ¸ā§āĻāĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻ¯āĻŧāĻžāĻ˛ āĻ°ā§āĻāĻ°ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻžāĻ°āĻšā§āĻĄāĻā§ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§āĻā§ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋāĻ° āĻŦā§āĻļ āĻāĻŋāĻā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ°āĻ¯āĻŧā§āĻā§: WAL āĻ°ā§āĻāĻ°ā§āĻĄāĻā§āĻ˛āĻŋ āĻāĻŽ āĻĄāĻŋāĻ¸ā§āĻā§ āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻĻā§āĻ°ā§āĻ¤ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ˛ā§ āĻšāĻ¯āĻŧ, āĻ¯ā§āĻŽāĻ¨ āĻĢā§āĻāĻ˛āĻāĻāĻžāĻ° āĻŦāĻž āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ-āĻāĻ¨-āĻāĻžāĻāĻŽ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ āĻāĻžāĻ¤ā§āĻ¯āĻŧ āĻ¸ā§āĻā§āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒā§āĻ¸ā§āĻāĻāĻŋāĻāĻāĻāĻ¸-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻā§-āĻ¸ā§āĻĨāĻžāĻ¨āĻŋāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻŋāĻāĻ¸āĻāĻŋ āĻ¸ā§āĻāĻ āĻ āĻ¨ā§āĻ āĻŦā§āĻļāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§), āĻāĻāĻŋ āĻ āĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻā§āĻˇ āĻĨā§āĻā§ āĻā§āĻ¨āĻ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻžāĻ°ā§āĻ¯āĻā§āĻˇāĻŽāĻ¤āĻžāĻā§ āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻŦā§āĨ¤
āĻŦāĻŋāĻāĻžāĻāĻ¨ - āĻŦāĻĄāĻŧ, āĻāĻžāĻ˛, āĻĻā§āĻ°ā§āĻ¤
PostgreSQL 10 āĻāĻžāĻ˛ā§ āĻšāĻ¯āĻŧā§āĻā§
PostgreSQL 12-āĻ, āĻĒāĻžāĻ°ā§āĻāĻŋāĻļāĻ¨āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻ¨ā§āĻ¨āĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§ āĻšāĻžāĻāĻžāĻ° āĻšāĻžāĻāĻžāĻ° āĻĒāĻžāĻ°ā§āĻāĻŋāĻļāĻ¨ āĻĨāĻžāĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻšāĻžāĻāĻžāĻ° āĻšāĻžāĻāĻžāĻ° āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĒāĻžāĻ°ā§āĻāĻŋāĻļāĻ¨āĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§ āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ āĻ¨ā§āĻ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ˛āĻŦā§āĨ¤ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻ°āĻ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŦā§āĻ¨ āĻ¯ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒāĻžāĻ°ā§āĻāĻŋāĻļāĻ¨ āĻ¸āĻš āĻā§āĻŦāĻŋāĻ˛ā§ INSERT āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻ¤ āĻĻā§āĻ°ā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĄā§āĻāĻž āĻ˛ā§āĻāĻž
āĻāĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻā§āĻ˛āĻŋ PostgreSQL-āĻāĻ° āĻĒāĻā§āĻˇā§ āĻāĻ°āĻ āĻŦāĻĄāĻŧ āĻĄā§āĻāĻžāĻ¸ā§āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻž āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻā§āĻˇ āĻĨā§āĻā§ āĻā§āĻ¨ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž. āĻ¯āĻĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ¤ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻŦāĻŋāĻāĻžāĻ āĻĨāĻžāĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŋāĻ°āĻŋāĻā§āĻ° āĻĄā§āĻāĻž āĻ˛ā§āĻā§, āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻĒāĻā§āĻ°ā§āĻĄ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻŦā§āĨ¤
āĻāĻŦāĻ āĻ¯āĻĻāĻŋāĻ āĻāĻāĻŋ āĻ āĻŋāĻ āĻāĻāĻāĻŋ āĻāĻĒāĻā§āĻ°ā§āĻĄ-āĻāĻ¨ā§āĻĄ-āĻāĻ¨āĻ¨ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ¨āĻ¯āĻŧ, āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ 12-āĻ āĻāĻĒāĻ¨āĻŋ āĻŦāĻŋāĻĻā§āĻļā§ āĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻĒāĻžāĻ°ā§āĻāĻŋāĻļāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻā§ āĻāĻ¨āĻ¨ā§āĻĻ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻ°ā§āĻāĻŋāĻļāĻ¨ āĻāĻ°āĻž āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĨ¤
āĻĒā§āĻ°āĻļā§āĻ¨ āĻ¸āĻā§āĻā§ āĻļā§āĻ§ā§ āĻ āĻ¨ā§āĻ āĻāĻžāĻ˛ āĻšāĻ¯āĻŧā§āĻā§
āĻ¯āĻāĻ¨
āĻāĻŽāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŋ āĻ¯ā§ SQL āĻ¨āĻ¤ā§āĻ¨āĻ°āĻž CTEs āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°ā§: āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻ˛ā§āĻā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§ āĻšāĻ¯āĻŧ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ āĻĒāĻ°āĻŋāĻšāĻžāĻ°ā§āĻ¯ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ˛āĻŋāĻāĻā§āĻ¨āĨ¤ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§, āĻāĻŽāĻŋ āĻāĻžāĻ°āĻĒāĻžāĻļā§ āĻĒā§āĻ¤ā§ āĻāĻ āĻĒā§āĻ°āĻļā§āĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŋ āĻāĻžāĻĄāĻŧāĻž CTE āĻāĻŦāĻ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨āĻļā§āĻ˛āĻ¤āĻž āĻŦā§āĻĻā§āĻ§āĻŋāĨ¤ āĻāĻāĻ¨ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ˛āĻžāĻĻāĻžāĨ¤
PostgreSQL 12 āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻžāĻ°ā§āĻļā§āĻŦ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ CTE āĻĒā§āĻ°āĻāĻžāĻ° āĻāĻ¨āĻ˛āĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ (SELECT
), āĻ¯āĻž āĻ
āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻļā§āĻˇā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻāĻāĻŦāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŽāĻŋ CTE āĻĒā§āĻ°āĻļā§āĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻāĻ° āĻ°āĻžāĻāĻŋ āĻ¯āĻž āĻāĻŽāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛āĻŋāĻā§āĻāĻŋ, āĻ¤āĻŦā§ āĻ¤āĻžāĻĻā§āĻ° āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻāĻ āĻāĻ āĻŦāĻŋāĻāĻžāĻā§ āĻĒāĻĄāĻŧā§āĨ¤ āĻāĻāĻŋ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¸ā§āĻĒāĻˇā§āĻ āĻā§āĻĄ āĻ˛āĻŋāĻāĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°ā§ āĻ¯āĻž āĻāĻāĻ¨ āĻĻā§āĻ°ā§āĻ¤āĨ¤
āĻ¤āĻžāĻāĻžāĻĄāĻŧāĻž, PostgreSQL 12 āĻ¨āĻŋāĻā§āĻ SQL āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨āĻā§ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻŋāĻā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻžāĨ¤ āĻ¯āĻĻāĻŋāĻ āĻāĻŽāĻžāĻ° āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻāĻ¨ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§ āĻ¨āĻž, āĻāĻāĻž āĻāĻŽā§āĻāĻžāĻ° āĻ¯ā§ PostgreSQL āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻžāĻ¨ā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¯āĻžāĻā§āĻā§āĨ¤
āĻāĻžāĻ¸ā§āĻ-āĻāĻ¨-āĻāĻžāĻāĻŽ (JIT) - āĻāĻāĻ¨ āĻĄāĻŋāĻĢāĻ˛ā§āĻ
āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻš PostgreSQL 12 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§
āĻ¯ā§āĻšā§āĻ¤ā§ āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ 12-āĻ āĻā§āĻāĻāĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻā§, āĻ¤āĻžāĻ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻ¨āĻŋāĻā§āĻ āĻāĻ¨ā§āĻ¨āĻ¤ āĻšāĻŦā§, āĻ¤āĻŦā§ āĻāĻŽāĻŋ āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ 11-āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻāĻŋāĻā§āĻāĻŋ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻžāĻ˛ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻā§āĻ¯āĻŧā§āĻ°āĻŋāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻā§āĻāĻ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§āĻāĻ¤ā§āĨ¤
āĻāĻŋāĻ¨ā§āĻ¤ā§ PostgreSQL 12-āĻāĻ° āĻŦāĻžāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻā§ āĻšāĻŦā§?
PostgreSQL 12-āĻ āĻāĻ āĻāĻ¨ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ SQL/JSON āĻ°ā§āĻ āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ JSON āĻĄā§āĻāĻž āĻĒāĻ°āĻŋāĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĨā§āĻā§ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ clientcert=verify-full
, āĻāĻ¤ā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ˛āĻžāĻŽ, āĻāĻŦāĻ āĻāĻ°ā§. āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĒā§āĻ¸ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻāĨ¤
PostgreSQL 10 āĻāĻ° āĻŽāĻ¤, PostgreSQL 12 āĻāĻĒāĻā§āĻ°ā§āĻĄā§āĻ° āĻĒāĻ°āĻĒāĻ°āĻ āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻŦā§āĨ¤ āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻāĻĒāĻžāĻ¯āĻŧ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ - āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻāĻāĻāĻŋ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨, āĻ¯ā§āĻŽāĻ¨āĻāĻŋ āĻāĻŽāĻŋ PostgreSQL 10 āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻŽāĻ¨āĻāĻŋ āĻ¯āĻĻāĻŋ PostgreSQL 12 āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽāĻžāĻ° āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛ āĻšāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻ āĻ˛āĻ¸ āĻšāĻŦā§āĻ¨ āĻ¨āĻž āĻāĻžāĻ˛, āĻā§āĻĒāĻžāĻĻāĻ¨ā§ āĻ¤āĻžāĻĻā§āĻ° āĻŽā§āĻā§āĻ¤āĻŋāĻ° āĻāĻā§āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com