ααΆααααα·ααααααααα»α αα·αααΌα ααΆαα ααααααΆααα»ααα PostgreSQL 12 αα·αααΆααααααααα·αααααα·αααααα½α α¬ααΈααα (ααΌα ααΆααΆααααα αα α¬αααα½αααααααααΆ)α αααα»αααααΆαααα·ααΆααααααΆαα»αααΆαααααΆαααααα PostgreSQL 12 ααΊαααααααΆαααααΆααααΆαα ααΎααααα·ααααααΆα’αααΈαααα’αααααααΌαααΆα αα αααα’αααααααααααααα·ααααααααααΆααααααα’αΆααΈαααααααααα’αααααααα?
ααα»αααα PostgreSQL 12 αα·αααααα ααΈαααααα ααΆαα½αααΉααα»αααΆαααααΈ αα·αααΆααααααα’ αααααα·ααΈααΉαααααΎαααΆαααΆαααααααααΎαα‘αΎαα α αΎαα’αααΈααΆααα’αααααα’αααααααΌαααααΎααΊααααΎα±αααααααΎαα‘αΎα!
(αααα ααβααΆβαααααΎαβαα·αα·ααααβα‘αΎαβαα·α ααα»ααααβαα βαααα»αβααΆαβα ααβααααΆαβααα ααΆβαα·αβαα½αβα²ααβααααΆα βααΌα βαααβααΎαβααααΆααβααααΎβαααβααα)
ααΆααΉααααααΎαααΆαααααα»αααΆαααα‘αΎα PostgreSQL α αΎαααΈαααΆαααΉαααΆααααααα’ααααΆαααααααΆααααααα·αααΆαααΆαααααΆαααααα·αα
αΆαααΆα
αα ααΆαααΈααα»ααααΆαααααΆααα»α αααα»αααΆααα·αα·αααααΎαααΆαα’αΆαααααααΈ PostgreSQL 9.4 αα
PostgreSQL 10 α αΎαααΆαααΎαααΈααααααααααααα·ααΈααααΎαααΆααααα’ααα»αα
ααααααΆαααααααααΆαααααα½ααααααΆααααααα’αα
αααα»α PostgreSQL 10α α αΎαααααΆαααααα»αααΊααααΎαααααααΆαα’αααΈααααΌαααΆαααΆαααΆαααΈαααα»ααα (ααααΆααααααααααααΆαααΆααααααααααααα
ααΆαααααααα max_parallel_workers
).
ααααααα ααΆααΆααααα½ααα αααααααααααα·ααΈααααΎαααΆαααΆααααααΎαααΆααα»αααααΆαααααααΆααααΈααΆαα’αΆαααααα α αΎαααΎαααααΆααΆααααΆαααααΆααααΎααααΈααααΆααα α·αααα’αααααααΎααααΆαα ααΈααααα PostgreSQL ααΆααα½αααααΆααααα αααΎαα‘αΎαα
ααΌα ααααααΎααΆαααααΎα±αααααααΎαα‘αΎαααΆαααααα PostgreSQL 12 ααααΎα±ααα’ααααααααΆαα α·ααααααΆαααΌα ααααα ? αααα»αααΉαααααΆααα’αααα₯α‘αΌααααα
ααΆααααααα’αα·αα·ααααααααΆααα
ααΎααααΆαααΆαααααΎαα·αα·αααααα ααΌαααααΆααα·ααααααααΉααα·ααα
ααααΆαααα ααΎα’αααα’αΆα
αααααααααααααΆαααΆαααΏααααααααααΆ? αααααααααα·αα·ααααααΌαααααΆααααα PostgreSQL ααααΌαααΆαααα α
ααΆ
ααΎαααααΆααααααααΎααααα·ααααα·αα CREATE INDEX ON some_table (some_column)
α αΎα PostgreSQL ααααΎααΆαααΆαααΆα
αααΎαααΎααααΈαααααΆαααααααααααΆαααααα αααααααααααΎααααα
αΌα ααααΎαα
αα
α»ααααααααΆα αα·ααα»ααααααα₯ααααααα α’αααΈαααααΎαααΆαααααααα½αααΆααααΆαα ααΌα
ααΆαααααααα
ααα»ααααααααααααα PostgreSQL ααΆααααα αΆαα½α - αα½αααα
PostgreSQL 12 ααααΎα’αααααααΎαα‘αΎααααΆαααααΆααααΌαααααΎαααΆαααααααααααα B-tree α αΎαααΆααα·αααααααΆαα½αααΉααααααααΆαααΌα ααΆ TPC-C ααΆααααα αΆαααΆααΆααααα 40% ααα ααααααααααΌαααΆαααααΎααααΆααα₯α‘αΌααααα α₯α‘αΌααααααΎαα αααΆαααααα·α ααΆααα·αααααΉαααααΎααΆααααααΆααααααααα B-tree (αααααΊαα ααΎααααα·ααααα·ααΆαααααα) ααα»αααααααα ααΎααΆαααΆααααα·ααααααααααα ααΈααααααααααααααααΊααΌα ααΆαα αααΎαα
αααααα·ααΈαααααααΎαα
αα
α»ααααααααΆαααΆααΆααααααα½ααααααΆαααααα - ααΆααααααΆαααααα·ααΈ OLTP (
αα»αααααΆαααααααααΎα±αααααααΎαα‘αΎααα½αα
ααα½ααααααΌαα±αααααααΎαααααααααα B-tree α‘αΎααα·α ααΎααααΈααΆαααα’αααααααααααααΈα’αααααααααααααΆααααα (α§.
ααΆαααΆααααααα’ααααααααα
ααααα αααααΆαα
ααΆαααααααααα·αα·αααααα
αααα»α PostgreSQL 12 α ααΏααα½αααααααααΆαααααααααααΆαααααααααααα -
PostgreSQL 12 ααΆαααΆαααααααα ααα½αααΎααααααααααααΆ WAL αααααααΌαααΆααααααΎαα‘αΎααααααααααααα GiST, GIN αα·α SP-GiST ααα‘α»αααααααααΎααα·αα·ααααα ααααααααααΌαα’αααααααααααααΆαααααααααΆα αααΎαα αααααααααΆ WAL ααααΎααααΆααααα αααΆααα·α α αΎααα·ααααααααααΌαααΆαα αΆααα‘αΎααα·αααΏαααΆααα»α ααΌα ααΆα’αα‘α»ααααααααααααααααααα αααααΆα α¬ααΆαααααααααααΆαααααααααΆα ααααα·αααΎα’αααααααΎαα·αα·αααααααααααα αααα»ααααααα·ααΈααααα’ααα (α§ααΆα ααααααααα·ααΈααΌαα·ααΆααααααααααΆαααΌαααααΆαααΎ PostGIS ααααΎααααααααα GiST α αααΎα) αααααΊααΆαααααααα·ααααα½αααααααααΉαααααΎα’αααααα·αααααααΆαααααααααΎαα‘αΎαααααα·αααΆα αααααΉααααααααΆαα½αα‘αΎαα
ααΆααααα αα - ααααΆααααααΆαααααααααΎαα‘αΎαααΏαααΆααα»α
PostgreSQL 10 ααααΌαααΆαααααΆα
αα αααα»α PostgreSQL 12 ααααΎαααΆαααααααααααα ααααΆαααΆαααΆαααΆαααααααααΎαα‘αΎαααΆαα·αααααααα·αααΎααΆαααΆαααΆαααΆααααΆαααα αααα»αααΆααΆαα α§ααΆα ααα ααααα·αααΎαααα½ααααααΆααααααΆαααΆαααΈαααΈαα αααα»αααΆααΆααααααΆααα½αααΆααΆααααΆαα ααΆααΉαααααΎαααΆαααΏαααΆααα»αα ααΆαα’αα»αααααα·αααααΆαααααααααΎαα‘αΎααααααΆαααααααααααααα½αααΆαααααααα α’αααααααΉαααααααααΆαααααααααΆααΎααααα·ααααα·ααΆα INSERT ααΏαααα»ααααΆαα ααΎααΆααΆααααααΆαααΆαααΆαα αααΎαα
ααΆααααααααΆαα·αααααααααααααΎ
ααΌαα’ααα»αα αααααα»ααααααααα·ααΆααααα PostgreSQL α’αα»ααααΆαα±ααα’ααααααααΆαα»ααααα»ααα·ααααααααΆαααααα αα·αααααΎα±αααα½αααααΆααααα½ααααα»αααΆαααΆααααααα·αα α αΎαβαα·αβααΆαβααΆαβαα·αααβααααΉααααααβααααβα’αααβααβα ααααα·αααΎαααααα·ααΈααΆαααΆαααΆαααΆα αααΎα ααΌα ααΆααΆααααααααΆαα·αααααααααααΈαααααααΆ ααΆαα’αΆαααααααααΆααααααΉαααααΎα’ααααααΎαααΆαααααααΆαααααΎαα‘αΎααααΆαααααΆααα
αααααααααααααα·ααααααΆααΆαααααΎα±αααααααΎα "ααααΎα±αααααααΎαα‘αΎα αα·αααΈαααΆα" PostgreSQL 12 α’αα»ααααΆαα±ααα’ααααααααΎαααΌααααααααααααααααΆααΆααααααΆααααα αα ααααΎα±ααααΆααααα ααααΆαααΆαααΈαααΆααααα»αααΆαααααΎααΆαααΆαα½αα
ααΆαα½αααΉααααα½α ααΆαααααααααΎαα‘αΎα
αα
ααα
ααΆααΏαααααα»ααααααΆα’αααααααΈααααα SQL α αΌαα α·αααααααΎ CTEs ααααα·αααΎα’ααααααααααΆααΆαααααααΆααααΆαα ααΆαα·αααΆααΆαα’αΆααααααααΆα’ααααααα»αααααααααααα·ααΈα αΆαααΆα αα αααααααΆαα αααα»αα αΌαα α·αααααααααααα½αααΆαααααα‘αΎααα·α ααΎααααΈααααααααα»ααα·α αααααααΆα CTE αα·ααααααΎαααα·αααΆαα α₯α‘αΌααααα’αααΈαααΊαα»αααααΆα
PostgreSQL 12 α’αα»ααααΆαα±ααα’ααααααα
αΌαααααααααΆααααΆαααα CTE αααααααΆααααααααΆαα (SELECT
) αααααααΌαααΆαααααΎααααααααααα
αα·αα
α»ααααα
ααααααααΎα ααααα·αααΎαααα»αααΆαααΆααααα½α CTE ααααααα»αααΆααααααα‘αΎααα·α ααΆαα
αααΎααααα½αααααΉαααααΌαααααΆααα
αΌααα
αααα»ααααααααααα ααΆαα½αα’αααα’αα·αααααααααααααΌαα
αααΆααααΆαα αααα₯α‘αΌααααααααααΎαααΆαααΆαααΏααααααα
ααΎαααΈααααα ααα PostgreSQL 12 αααααΎαααααα·αααααΆαααΆαααααα·ααααα· SQL ααααααα½αα―α ααααα·αα αΆαααΆα αααααΎα’αααΈααΆααα’ααα α αΎααααααΈααΆαααα»ααααα ααααΆαα·αα αΆαααΆα ααααααΎαααααα·αααααΆααααα½αααααααα₯α‘αΌααααααααα ααΆαα·αααΆααα’ααΆααααα PostgreSQL ααααααααΎααΆαααΎααΆααααααΎαααααα·αααααΆααααα½αα
Just-in-Time (JIT) - α₯α‘αΌααααααααΆαααΎα
αα
ααΎαααααααα PostgreSQL 12 ααΆαα½αααΉαααΆαααΆαααα
αααααΆα JIT ααααΌαααΆαααΎαααΆαααααΆαααΎααα αααα»α PostgreSQL 12 ααΆαα’αα»ααααααΉααααααΎαα‘αΎαααααααα½αα―α ααα»αααααααα»αααΌαααααΆαα±ααααΆααααααααααα·ααΈαα αααα»α PostgreSQL 11 αααααΆαααααΆα JIT ααΎααααΈααΆαααααααααααΎαααΆααααα½α αα·αααΎαααΆααΎα’αααααααΌαααΆααααααααΌαα’αααΈα
α α»ααα»αααΆαααααΈααααα ααααααα»α PostgreSQL 12 αα·α?
PostgreSQL 12 ααΆααααααααα·αααααααΈαααΆα
αααΎα α
αΆααααΈαααααααΆααααα»αααΆααα·αα·αααααΎααα·αααααα JSON αααααααΎααααααααααΌα SQL/JSON αααααααΆααα αΌααααααΆααααααααααΆαααα α»αααααΆααΆαα½αααΉααααΆαααΆαααααα clientcert=verify-full
ααΆααααααΎααα½ααα αα·αα
αααΎααααα αααααααααΆαααααααΆααααΆααααααΆαααΆα
ααααα‘ααα
ααΌα PostgreSQL 10 ααα PostgreSQL 12 ααΉαααααΎα±αααααααΎαα‘αΎαααΌαααααΎαααΆαααΌαα ααααΆαααααααΆααααΈααΆαααααΎα±αααααααΎαα‘αΎαα ααΆααΆααα·αααΆαα α’αααα’αΆα ααΆαααααΌαααααΆαααααα½αααααα’ααα - ααΆααααααααααα·ααΈαααααααααααααααααααααααΆαα ααΎααααααααααα·ααααα αα»ααααααΎαααααΎαααΆαααΆααααααα’ ααΌα ααααααα»αααΆαααααΎααΆαα½α PostgreSQL 10α αααααΈααΆ PostgreSQL 12 ααΆααααααααΆαααΆαα’αααΈααααααα»αααααΉααα»αααααα αα»ααααα·ααααα»αααΆαααααΎααααα αααααα·ααΈα±ααααΆαα ααααα αα αα»αααΉααααα ααααΆαα αααα»αααα·αααααα
ααααα: www.habr.com