I koʻu manaʻo, ʻaʻole e like me nā hoʻokuʻu mua, ʻaʻole i loaʻa i ka PostgreSQL 12 hoʻokahi a ʻelua mau hiʻohiʻona kipi (e like me ka partitioning a i ʻole ka huli ʻana i ka parallelism). Ua ʻakaʻaka wau i ka hiʻohiʻona nui o PostgreSQL 12 ʻoi aku ka paʻa. ʻAʻole anei ʻo ia kāu mea e pono ai ke mālama ʻoe i ka ʻikepili koʻikoʻi o kāu ʻoihana?
Akā ʻaʻole pau ʻo PostgreSQL 12 ma laila: me nā hiʻohiʻona hou a me ka hoʻomaikaʻi ʻana, ʻoi aku ka maikaʻi o nā noi. a ʻo nā mea a pau āu e hana ai ʻo ka hoʻomaikaʻi ʻana!
(ʻAe, kūkulu hou paha i nā kuhikuhi, akā i kēia hoʻokuʻu ʻana ʻaʻole ia he mea weliweli e like me kā mākou maʻamau.)
He mea maikaʻi loa ka hoʻomaikaʻi ʻana i ka PostgreSQL a hauʻoli koke i nā hoʻomaikaʻi koʻikoʻi me ka ʻole o ka haunaele pono ʻole. I kekahi mau makahiki i hala aku nei, ua nānā au i ka hoʻonui ʻana mai PostgreSQL 9.4 a i PostgreSQL 10 a ʻike i ke ʻano o ka wikiwiki ʻana o ka noi no ka hoʻomaikaʻi ʻana i ka hulina hulina ma PostgreSQL 10. A ʻo ka mea nui loa, ʻaʻohe mea i koi ʻia mai iaʻu (e hoʻonohonoho wale i kahi hoʻonohonoho hoʻonohonoho. max_parallel_workers
).
ʻAe, ʻoi aku ka maikaʻi o ka hana ʻana o nā noi ma hope koke o ka hoʻonui ʻana. A ke hoʻāʻo nui nei mākou e ʻoluʻolu i nā mea hoʻohana, no ka mea, ʻoi aku ka nui o ka PostgreSQL.
No laila pehea e hiki ai i kahi hoʻonui maʻalahi iā PostgreSQL 12 ke hauʻoli iā ʻoe? E haʻi aku wau iā ʻoe i kēia manawa.
ʻO nā hoʻomaikaʻi helu helu nui
Me ka ʻole o ka indexing, ʻaʻole e hele mamao kahi waihona. Pehea e hiki ai iā ʻoe ke loaʻa koke ka ʻike? Kāhea ʻia ka ʻōnaehana kuhikuhi kumu o PostgreSQL
Hoʻohana wale mākou i ka mea hoʻohana CREATE INDEX ON some_table (some_column)
, a he nui nā hana a PostgreSQL no ka mālama ʻana i ka index i kēia lā ʻoiai mākou e hoʻokomo mau, hoʻonui, a holoi i nā waiwai. Hana nā mea a pau iā ia iho, me he mea lā ma ke kilokilo.
Akā, hoʻokahi pilikia nā index PostgreSQL - lākou
Hoʻomaikaʻi maikaʻi ʻo PostgreSQL 12 i ka hana ʻana o nā huaʻōlelo B-lāʻau, a ua hōʻike ʻia nā hoʻokolohua me nā benchmarks e like me TPC-C ma ka awelika he 40% ka liʻiliʻi i hoʻohana ʻia i kēia manawa. I kēia manawa, hoʻemi mākou i ka manawa ʻaʻole wale ma ka mālama ʻana i nā indexes B-tree (ʻo ia hoʻi, ma nā hana kākau), akā no ka lawe ʻana i ka ʻikepili, no ka mea ʻoi aku ka liʻiliʻi o nā kuhikuhi.
Nā noi e hoʻopou hou i kā lākou mau papa - maʻamau nā noi OLTP (
Pono kekahi mau hoʻolālā hoʻomaikaʻi e kūkulu hou i nā index B-tree no ka hoʻohana ʻana i kēia mau pono (e.g.
Aia kekahi mau hoʻomaikaʻi ʻē aʻe i ka ʻōnaehana indexing ma PostgreSQL 12. ʻO kahi mea ʻē aʻe kahi i loaʻa ai kahi kilokilo -
Ua hōʻemi ʻo PostgreSQL 12 i ke poʻo o nā moʻolelo WAL i hana ʻia e nā kuhikuhina GiST, GIN, a me SP-GIST i ka wā o ke kūkulu ʻana i ka papa kuhikuhi. Hāʻawi kēia i nā pōmaikaʻi ʻike ʻia: ʻoi aku ka liʻiliʻi o nā moʻolelo WAL, a ʻoi aku ka wikiwiki o ka hoʻihoʻi ʻana o ka ʻikepili, e like me ka wā o ka pōʻino a i ʻole ka hoʻihoʻi ʻana i ka manawa. Inā hoʻohana ʻoe i ia mau kuhikuhi i kāu mau noi (e like me ka PostGIS-based geospatial applications e hoʻohana nui i ka GiST index), ʻo ia kekahi hiʻohiʻona e hoʻomaikaʻi nui i ka ʻike me ka ʻole o kāu hoʻoikaika ʻana.
Hoʻokaʻawale - ʻoi aku ka nui, ʻoi aku ka maikaʻi, ʻoi aku ka wikiwiki
Hoʻokomo ʻia ʻo PostgreSQL 10
Ma PostgreSQL 12, ua ʻoi aku ka maikaʻi o ka hana o ka ʻōnaehana hoʻokaʻawale, ʻoi aku ka nui inā he mau kaukani ʻāpana i ka papaʻaina. No ka laʻana, inā pili ka nīnau i nā ʻāpana liʻiliʻi i loko o kahi pākaukau me nā tausani o lākou, e hoʻokō ʻoi aku ka wikiwiki. ʻAʻole hoʻomaikaʻi wale ʻia ka hana no kēia mau ʻano nīnau. E ʻike ʻoe i ka wikiwiki o nā hana INSERT ma nā papa me nā ʻāpana he nui.
Hoʻopaʻa ʻikepili me ka hoʻohana ʻana
Mahalo i kēia mau pōmaikaʻi, ʻae ʻo PostgreSQL iā ʻoe e mālama i nā pūʻulu ʻikepili nui aʻe a maʻalahi iā lākou ke kiʻi. A ʻaʻohe hoʻoikaika ma kāu ʻaoʻao. Inā he nui nā ʻāpana o ka noi, e like me ka hoʻopaʻa ʻana i ka ʻikepili manawa, e hoʻomaikaʻi nui ka hoʻonui maʻalahi i kāna hana.
ʻOiai ʻaʻole kēia he "hoʻomaikaʻi a hauʻoli" i ka hoʻomaikaʻi ʻana, ʻae ʻo PostgreSQL 12 iā ʻoe e hana i nā kī ʻē aʻe e kuhikuhi ana i nā papa ʻāpana, e ʻoliʻoli i ka hana ʻana me ka partitioning.
ME nā nīnau i ʻoi aku ka maikaʻi
Inā
ʻIke pinepine au i nā mea hou i SQL makemake e hoʻohana i nā CTE; inā ʻoe e kākau iā lākou i kekahi ala, manaʻo maoli ʻoe e kākau nei i kahi papahana koʻikoʻi. ʻO wau iho, makemake wau e kākau hou i kēia mau nīnau e hele a puni me kaʻole CTE a hoʻonui i ka huahana. I kēia manawa,ʻokoʻa nā mea a pau.
Hiki iā PostgreSQL 12 ke hoʻokomo i kahi ʻano kikoʻī o CTE me ka ʻole o nā hopena ʻaoʻao (SELECT
), i hoʻohana ʻia hoʻokahi wale nō ma kahi kokoke i ka hopena o ke noi. Inā mālama au i nā nīnau CTE aʻu i kākau hou ai, e hāʻule ka hapa nui o lākou i kēia māhele. Kōkua kēia i nā mea hoʻomohala e kākau i nā code maopopo e holo wikiwiki ana i kēia manawa.
Eia kekahi, hoʻomaikaʻi ʻo PostgreSQL 12 i ka hoʻokō SQL iā ia iho, me ka ʻole o ʻoe e hana i kekahi mea. A ʻoiai ʻaʻole pono wau e hoʻopaʻa i kēia mau nīnau i kēia manawa, maikaʻi loa ka hoʻomau ʻana o PostgreSQL i ka hana ʻana i ka huli ʻana.
Just-in-Time (JIT) - i kēia manawa paʻamau
Ma nā ʻōnaehana PostgreSQL 12 me ke kākoʻo
Ma muli o ka hiki ʻana o JIT ma ka paʻamau ma PostgreSQL 12, e hoʻomaikaʻi ka hana ma kāna iho, akā paipai wau e hoʻāʻo i ka noi ma PostgreSQL 11, ka mea i hoʻokomo iā JIT, e ana i ka hana nīnau a ʻike inā pono ʻoe e hoʻolohe i kekahi mea.
Pehea e pili ana i ke koena o nā hiʻohiʻona hou ma PostgreSQL 12?
Loaʻa i ka PostgreSQL 12 kahi ton o nā hiʻohiʻona hou, mai ka hiki ke nānā i ka ʻikepili JSON me ka hoʻohana ʻana i nā hōʻike ala SQL/JSON maʻamau i ka hōʻoia ʻana i nā mea he nui me kahi ʻāpana. clientcert=verify-full
, hana i nā kolamu a me nā mea hou aku. Ua lawa no ka pou kaawale.
E like me PostgreSQL 10, PostgreSQL 12 e hoʻomaikaʻi i ka hana holoʻokoʻa ma hope koke o ka hoʻonui. ʻO ʻoe, ʻoiaʻiʻo, hiki iā ʻoe ke loaʻa i kou ala ponoʻī - e hoʻāʻo i ka noi ma lalo o nā kūlana like ma ka ʻōnaehana hana ma mua o ka hiki ʻana i nā hoʻomaikaʻi, e like me kaʻu i hana ai me PostgreSQL 10. ʻOiai inā ʻoi aku ka paʻa o PostgreSQL 12 ma mua o kaʻu i manaʻo ai, mai palaualelo i ka hoʻāʻo. nā noi, ma mua o ka hoʻokuʻu ʻana iā lākou i ka hana.
Source: www.habr.com