αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž”αž„αŸ’αž αžΆαž‰αž–αžΈαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαž αžαžΆαž˜αžŠαžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαžŸαŸ†αžŽαž½αžš SQL αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αžΆαž“αž–αž½αž€αž‚αŸαžšαžΆαž”αŸ‹αž›αžΆαž“αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒαž αžΎαž™αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ PostgreSQL αžšαžΆαž”αŸ‹αžšαž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ”

αžαžΎαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžšαž·αž˜αžΆαžŽαž“αŸƒαž–αŸαžαŸŒαž˜αžΆαž“αž”αŸ‚αž”αž“αŸαŸ‡αž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– αž αžΎαž™αžαžΎαžœαžΆαž’αŸ’αžœαžΎαž±αŸ’αž™αž‡αžΈαžœαž·αžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž’αž˜αŸ’αž˜αžαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‡αžΆαž„αž˜αž»αž“αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ?


αž’αŸ’αž“αž€αžŽαžΆαž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ? αž€αžΆαžšαžœαž·αž—αžΆαž‚αž’αŸ†αž–αžΈαž”αž‰αŸ’αž αžΆαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž“αž·αž„αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž•αŸ’αžŸαŸαž„αŸ— αžŸαŸ†αžŽαž½αžš SQL αž“αž·αž„αž€αžΆαžšαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆ DBA αž’αž˜αŸ’αž˜αžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ PostgreSQL - αž’αŸ’αž“αž€αž€αŸαž’αžΆαž…αž•αž„αžŠαŸ‚αžšαŸ” αž’αžΆαž“αžŸαŸŠαŸαžšαžΈαž“αŸƒαž’αžαŸ’αžαž”αž‘ αž›αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸαŸ‡αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)
αžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‚αžΊ Kirill Borovikov αžαŸ’αž‰αž»αŸ†αžαŸ†αžŽαžΆαž„ αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ Tensor. αž‡αžΆαž–αž·αžŸαŸαžŸ αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž‡αŸ†αž“αžΆαž‰αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

αžαŸ’αž„αŸƒαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŸαŸ†αžŽαž½αžš αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹ "αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€" αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒαžŸαŸ†αžŽαž½αžšαžαŸ‚αž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ†αžŽαžΎαžšαžΆαž”αŸ‹αž›αžΆαž“ αž αžΎαž™αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŸαŸ’αžœαŸ‚αž„αžšαž€αž˜αž½αž™αž…αŸ†αž“αž½αž“ αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ αž”αž‰αŸ’αž αžΆαžŠαŸαž’αŸ†αž“αŸαŸ‡αŸ”

αž‡αžΆαž‘αžΌαž‘αŸ… Tensor αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“αž˜αž½αž™αž›αžΆαž“αž“αžΆαž€αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αž‚αžΊ VLSI αž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”αŸ– αž”αžŽαŸ’αžαžΆαž‰αžŸαž„αŸ’αž‚αž˜αžŸαžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜ αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αžαžΆαž˜αžœαžΈαžŠαŸαž’αžΌ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αŸ†αž αžΌαžšαž―αž€αžŸαžΆαžšαžαžΆαž„αž€αŸ’αž“αž»αž„ αž“αž·αž„αžαžΆαž„αž€αŸ’αžšαŸ… αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αžŽαž“αŸαž™αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžŽαž“αŸαž™αŸ’αž™ αž“αž·αž„αžƒαŸ’αž›αžΆαŸ†αž„... αž“αŸ„αŸ‡αž‚αžΊαž‡αžΆ "αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαžŠαŸαž’αŸ†" αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆ αžŠαŸ‚αž›αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡αž˜αžΆαž“αž…αŸ’αžšαžΎαž“αž‡αžΆαž„ 100 αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαŸ” αž‚αž˜αŸ’αžšαŸ„αž„αž•αŸ’αž‘αŸƒαž€αŸ’αž“αž»αž„αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž“αžΆαžαžΆαž–αž½αž€αž‚αŸαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž’αž—αž·αžœαžŒαŸ’αžαž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αž™αžΎαž„αž˜αžΆαž“αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž›αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž…αŸ†αž“αž½αž“ 10 αž“αŸ…αž‘αžΌαž‘αžΆαŸ†αž„αž”αŸ’αžšαž‘αŸαžŸ αžŠαŸ„αž™αž˜αžΆαž“αž…αŸ’αžšαžΎαž“αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„αž–αž½αž€αž‚αŸαŸ” αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ 1000.

αž™αžΎαž„αž”αžΆαž“αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ PostgreSQL αžαžΆαŸ†αž„αž–αžΈαž†αŸ’αž“αžΆαŸ† 2008 αž αžΎαž™αž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αž“αžΌαžœαž…αŸ†αž“αž½αž“αžŠαŸαž…αŸ’αžšαžΎαž“αž“αŸƒαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš - αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αžαž·αžαž·αž‡αž“ αžŸαŸ’αžαž·αžαž· αž€αžΆαžšαžœαž·αž—αžΆαž‚ αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αŸαžαŸŒαž˜αžΆαž“αžαžΆαž„αž€αŸ’αžšαŸ… - αž…αŸ’αžšαžΎαž“αž‡αžΆαž„ 400TB. αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž”αŸ’αžšαž αŸ‚αž› 250 αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αž›αž·αžαžαŸ‚αž˜αž½αž™ αž αžΎαž™αžŸαžšαž»αž”αž‘αŸ…αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž”αŸ’αžšαž αŸ‚αž› 1000 αžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

SQL αž‚αžΊαž‡αžΆαž—αžΆαžŸαžΆαž”αŸ’αžšαž€αžΆαžŸαŸ” αž’αŸ’αž“αž€αž–αžŽαŸŒαž“αžΆαž˜αž·αž“αž˜αŸ‚αž“ "αžšαž”αŸ€αž”" αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαŸ‚αž›αž‚αž½αžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚ "αž’αŸ’αžœαžΈ" αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αžŸαž˜αŸ’αžšαŸαž…αž”αžΆαž“αŸ” DBMS αžŠαžΉαž„αž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ’αž”αžΆαžŸαŸ‹αž–αžΈαžšαž”αŸ€αž”αž”αž„αŸ’αž€αžΎαž JOIN - αžšαž”αŸ€αž”αž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαžšαžΆαž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžŠαžΆαž€αŸ‹ αž’αŸ’αžœαžΈαž“αžΉαž„αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž›αž·αž”αž·αž€αŸ’αžšαž˜ αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αžΉαž„αž˜αž·αž“...

DBMSs αž˜αž½αž™αž…αŸ†αž“αž½αž“αž‘αž‘αž½αž›αž™αž€αž–αŸαžαŸŒαž˜αžΆαž“αž‡αŸ†αž“αž½αž™αŸ– "αž‘αŸ αž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαžšαžΆαž„αž‘αžΆαŸ†αž„αž–αžΈαžšαž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž½αžšαž”αŸ‚αž”αž“αŸαŸ‡" αž”αŸ‰αž»αž“αŸ’αžαŸ‚ PostgreSQL αž˜αž·αž“αž’αžΆαž…αž’αŸ’αžœαžΎαžœαžΆαž”αžΆαž“αž‘αŸαŸ” αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αž‡αŸ†αž αžšβ€‹αžŠαžΉαž„β€‹αžαŸ’αž›αž½αž“β€‹αžšαž”αžŸαŸ‹β€‹αž’αŸ’αž“αž€β€‹αž’αž—αž·αžœαžŒαŸ’αžαž“αŸβ€‹αžˆαžΆαž“β€‹αž˜αž»αžβ€‹αž‚αŸαŸ– "αž™αžΎαž„β€‹αž…αž„αŸ‹β€‹αž”αž‰αŸ’αž…αž”αŸ‹β€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αž”αž„αŸ’αž€αžΎαž“β€‹αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–β€‹αžŸαŸ†αžŽαž½αžš αž‡αžΆαž‡αžΆαž„β€‹αž’αž“αž»αž‰αŸ’αž‰αžΆαžβ€‹αž±αŸ’αž™β€‹αž’αŸ’αž“αž€β€‹αž’αž—αž·αžœαžŒαŸ’αžαž“αŸβ€‹αž”αŸ’αžšαžΎβ€‹αžαž˜αŸ’αžšαž»αž™β€‹αž˜αž½αž™β€‹αž…αŸ†αž“αž½αž“αŸ”"

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆ PostgreSQL αž˜αž·αž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™ "αžαžΆαž„αž€αŸ’αžšαŸ…" αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžαŸ’αž›αž½αž“αž―αž„αž€αŸαžŠαŸ„αž™αž€αŸαžœαžΆαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž™αŸ‰αžΆαž„αž›αŸ’αž’αž₯αžαžαŸ’αž…αŸ„αŸ‡ αž˜αžΎαž›αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž€αžΎαžαž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αžΆαžαŸ‹αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαž½αžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž“αž·αž„αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αžœαžΆαž˜αžΆαž“αž”αž‰αŸ’αž αžΆαŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž‡αžΆαž‘αžΌαž‘αŸ… αžαžΎαž”αž‰αŸ’αž αžΆαž”αž»αžšαžΆαžŽαž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ [αž‘αŸ… DBA] αžαŸ‚αž„αžαŸ‚αž˜αž€αž‡αžΆαž˜αž½αž™? β€œαž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αž”αŸ†αž–αŸαž‰αžŸαŸ†αžŽαžΎαžšαž αžΎαž™ αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαž™αžΊαžαž‡αžΆαž˜αž½αž™αž™αžΎαž„αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž€αŸ†αž–αž»αž„αž–αŸ’αž™αž½αžš αž’αŸ’αžœαžΈαž˜αž½αž™αž€αŸ†αž–αž»αž„αž€αžΎαžαž‘αžΎαž„... αž”αž‰αŸ’αž αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“!”

αž αŸαžαž»αž•αž›αž‚αžΊαžŸαŸ’αž‘αžΎαžšαžαŸ‚αžαŸ‚αž„αžαŸ‚αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ–

  • αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαŸ†αžŽαž½αžšαž‚αŸ’αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–
    αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ– "αž₯αž‘αžΌαžœαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž€αŸ†αž–αž»αž„αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αž‚αžΆαžαŸ‹αž“αžΌαžœαžαžΆαžšαžΆαž„αž…αŸ†αž“αž½αž“ 10 αž“αŸ…αž€αŸ’αž“αž»αž„ SQL αžαžΆαž˜αžšαž™αŸˆ JOIN ... " - αž αžΎαž™αžšαŸ†αž–αžΉαž„αžαžΆαž›αž€αŸ’αžαžαžŽαŸ’αžŒαžšαž”αžŸαŸ‹αž‚αžΆαžαŸ‹αž“αžΉαž„αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŠαŸ„αž™αž’αž–αŸ’αž—αžΌαžαž αŸαžαž» "αžŸαŸ’αžšαžΆαž™" αž αžΎαž™αž‚αžΆαžαŸ‹αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αž–αŸ’αž—αžΌαžαž αŸαžαž»αž˜αž·αž“αž€αžΎαžαž‘αžΎαž„αž‘αŸαž αžΎαž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž›αž”αŸ‚αž”αž“αŸαŸ‡ (10 αžαžΆαžšαžΆαž„αž€αŸ’αž“αž»αž„αž˜αž½αž™ FROM) αžαŸ‚αž„αžαŸ‚αž•αŸ’αžαž›αŸ‹αž“αžΌαžœαž”αŸ’αžšαž—αŸαž‘αž“αŸƒαž€αŸ†αž αž»αžŸαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” [αž’αžαŸ’αžαž”αž‘]
  • αžŸαŸ’αžαž·αžαž·αž˜αž·αž“αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’
    αž…αŸ†αžŽαž»αž…αž“αŸαŸ‡αž‚αžΊαž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž‡αžΆαž–αž·αžŸαŸαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ PostgreSQL αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€ "αž…αžΆαž€αŸ‹" αžŸαŸ†αžŽαž»αŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸαž’αŸ†αž˜αž½αž™αž‘αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž’αŸ’αžœαžΎαž€αžΆαžšαžŸαŸ’αž“αžΎαžŸαž»αŸ† αž αžΎαž™αžœαžΆ "αžšαž½αž˜αž—αŸαž‘" αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αž“αŸ’αž‘αŸ‡αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαž›αž–αžΈαž˜αŸ’αžŸαž·αž›αž˜αž·αž‰αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž…αŸ†αž“αž½αž“ 10 αž“αŸ…αž€αŸ’αž“αž»αž„αž“αŸ„αŸ‡ αž αžΎαž™αžαŸ’αž„αŸƒαž“αŸαŸ‡αž˜αžΆαž“ 10 αž›αžΆαž“αž“αžΆαž€αŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚ PostgreSQL αž˜αž·αž“αž‘αžΆαž“αŸ‹αžŠαžΉαž„αž’αŸ†αž–αžΈαžšαžΏαž„αž“αŸαŸ‡αž‘αŸ αž αžΎαž™αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž’αŸ†αž–αžΈαžœαžΆαŸ” [αž’αžαŸ’αžαž”αž‘]
  • "αžŠαŸ„αž" αž›αžΎαž’αž“αž’αžΆαž“
    αž’αŸ’αž“αž€β€‹αž”αžΆαž“β€‹αžŠαŸ†αž‘αžΎαž„β€‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αž’αŸ† αž“αž·αž„β€‹αž•αŸ’αž‘αž»αž€β€‹αžαŸ’αž›αžΆαŸ†αž„β€‹αž›αžΎβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž˜αŸ’αžšαžΎβ€‹αžαŸ’αžŸαŸ„αž™ αžŠαŸ‚αž›β€‹αž˜αž·αž“β€‹αž˜αžΆαž“β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹β€‹αž“αŸƒβ€‹αžαžΆαžŸ αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž¬β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αžšαž”αžŸαŸ‹β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž αžΎαž™αž“αŸ„αŸ‡αž αžΎαž™αž‡αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ ... αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž˜αž½αž™αž˜αžΆαž“αž–αž·αžŠαžΆαž“αž€αžΆαžšαžŸαž˜αŸ’αžαŸ‚αž„αž“αŸ…αžαžΆαž„αž›αžΎ αžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αž›αŸ„αžαž”αžΆαž“αž‘αŸ€αžαž‘αŸαŸ”
  • αž€αžΆαžšαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹
    αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž…αŸ†αžŽαž»αž…αž–αž·αž”αžΆαž€ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αž‚αŸαž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž”αŸ†αž•αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αžŽαž½αžšαž€αŸ‚αž”αŸ’αžšαŸ‚αž•αŸ’αžŸαŸαž„αŸ— (αž”αž‰αŸ’αž…αžΌαž› αž’αžΆαž”αŸ‹αžŠαŸαž αž›αž»αž”) - αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž’αŸ†αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž˜αž½αž™αŸ”

αž€αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“αž•αŸ‚αž“αž€αžΆαžš

... αž αžΎαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž™αžΎαž„ αžαŸ’αžšαžΌαžœαž€αžΆαžšαž•αŸ‚αž“αž€αžΆαžš! αž™αžΎαž„αžαŸ’αžšαžΌαžœαž˜αžΎαž›αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž€αžΎαžαž‘αžΎαž„αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž•αŸ‚αž“αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαž½αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ PostgreSQL αž‚αžΊαž‡αžΆαž˜αŸ‚αž€αž’αžΆαž„αž“αŸƒαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαž½αžšαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ†αžŽαžΆαž„αž’αžαŸ’αžαž”αž‘αŸ” αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžαžΆαž‡αžΆαž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž› αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαžœαž·αž—αžΆαž‚αžŠαŸ„αž™αž’αŸ’αž“αž€αžšαŸ€αž”αž…αŸ†αž•αŸ‚αž“αž€αžΆαžš αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰αžαžΆαž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž”αŸ†αž•αž»αžαŸ”

αžαŸ’αž“αžΆαŸ†αž„αž˜αŸ‚αž€αž’αžΆαž„αž“αžΈαž˜αž½αž™αŸ—αž‚αžΊαž‡αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž˜αž½αž™αŸ– αž€αžΆαžšαž‘αžΆαž‰αž™αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž–αžΈαžαžΆαžšαžΆαž„ αž¬αž›αž·αž”αž·αž€αŸ’αžšαž˜ αž€αžΆαžšαž€αžŸαžΆαž„αž•αŸ‚αž“αž‘αžΈαž”αŸŠαžΈαž αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαžšαžΆαž„αž–αžΈαžš αž€αžΆαžšαž…αžΌαž›αžšαž½αž˜ αž€αžΆαžšαž”αŸ’αžšαžŸαž–αŸ’αžœαž‚αŸ’αž“αžΆ αž¬αž€αžΆαžšαž˜αž·αž“αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαŸ” αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαž½αžšαž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αž“αžΉαž„αž€αžΆαžšαžŠαžΎαžšαž€αžΆαžαŸ‹αžαŸ’αž“αžΆαŸ†αž„αž“αŸƒαž˜αŸ‚αž€αž’αžΆαž„αž“αŸαŸ‡αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž•αŸ‚αž“αž€αžΆαžšαžŸαŸ†αžŽαž½αžš αž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ†αž•αž»αžαž‚αžΊαž’αž“αž»αžœαžαŸ’αžαžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸ EXPLAIN. αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαž–αž·αžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αŸ„αŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαž½αžšαž“αŸ…αž›αžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ - EXPLAIN (ANALYZE, BUFFERS) SELECT ....

αž•αŸ’αž“αŸ‚αž€αž’αžΆαž€αŸ’αžšαž€αŸ‹αŸ– αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆ αžœαžΆαž€αžΎαžαž‘αžΎαž„ "αž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž“αž·αž„αž₯αž‘αžΌαžœαž“αŸαŸ‡" αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžœαžΆαžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ‚αž€αžΆαžšαž€αŸ‚αž€αŸ†αž αž»αžŸαž€αŸ’αž“αž»αž„αžαŸ†αž”αž“αŸ‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž™αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž˜αžΆαž“αž•αŸ’αž‘αž»αž€αžαŸ’αž–αžŸαŸ‹αžŠαŸ‚αž›αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αžšαŸ„αž˜αž›αŸ†αž αžΌαžšαžαŸ’αž›αžΆαŸ†αž„αž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™ αž αžΎαž™αž’αŸ’αž“αž€αžƒαžΎαž‰αŸ– β€œαž’αžΌ! αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž˜αžΆαž“αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž™αžΊαžαžŸαŸ€ αžŸαŸ†αžŽαžΎαŸ”" αž€αž“αŸ’αž›αŸ‡αž˜αŸ‰αŸ„αž„ αž˜αž½αž™αž˜αŸ‰αŸ„αž„αž˜αž»αž“ - αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž‘αž‘αž½αž›αž”αžΆαž“αžŸαŸ†αžŽαžΎαž“αŸαŸ‡αž–αžΈαž€αŸ†αžŽαžαŸ‹αž αŸαžαž» αž“αžΆαŸ†αžœαžΆαžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžœαž·αž‰ αžŸαŸ†αžŽαž»αŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž“αž·αž„αžŸαŸ’αžαž·αžαž·αž‘αžΆαŸ†αž„αž˜αžΌαž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαŸ” αž’αŸ’αž“αž€β€‹αžšαžαŸ‹β€‹αžœαžΆβ€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž”αŸ†αž”αžΆαžαŸ‹β€‹αž€αŸ†αž αž»αžŸ - αž αžΎαž™β€‹αžœαžΆβ€‹αžšαžαŸ‹β€‹αž™αŸ‰αžΆαž„β€‹αž›αžΏαž“! αž αžΎαž™αž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αž™αž›αŸ‹αž”αžΆαž“αžαžΆαž αŸαžαž»αž’αŸ’αžœαžΈ? αž‚αžΊ αž™αŸ‰αžΆαž„β€‹αž™αžΊαžαŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž“αŸ…αž–αŸαž›αžŸαŸ†αžŽαžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž˜αž“αž»αžŸαŸ’αžŸαž†αŸ’αž›αžΆαžαž”αžΆαž“αžŸαžšαžŸαŸαžš αž˜αŸ‰αžΌαžŒαž»αž› auto_explain. αžœαžΆαž˜αžΆαž“αžœαžαŸ’αžαž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™ PostgreSQL αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž αžΎαž™αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαž€αž˜αŸ’αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαžŠαžΉαž„αžαžΆαžŸαŸ†αžŽαžΎαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž™αžΌαžšαž‡αžΆαž„αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αž”αŸ’αžšαžΆαž”αŸ‹αžœαžΆ αž“αŸ„αŸ‡αžœαžΆαž“αžΉαž„αž€αžΎαžαž‘αžΎαž„ "αžšαžΌαž”αžαž" αž“αŸƒαž•αŸ‚αž“αž€αžΆαžšαž“αŸƒαžŸαŸ†αžŽαžΎαž“αŸαŸ‡ αž αžΎαž™αžŸαžšαžŸαŸαžšαž–αž½αž€αžœαžΆαž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαžαŸ‹αž αŸαžαž».

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž’αŸ’αžœαžΈαŸ—αž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž›αŸ’αž’αž₯αž‘αžΌαžœαž“αŸαŸ‡ αž™αžΎαž„αž‘αŸ…αž˜αžΎαž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡... [ text footcloth]αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž™αžΎαž„β€‹αž˜αž·αž“β€‹αž’αžΆαž…β€‹αž“αž·αž™αžΆαž™β€‹αž’αŸ’αžœαžΈβ€‹αž’αŸ†αž–αžΈβ€‹αžœαžΆβ€‹αž”αžΆαž“β€‹αž‘αŸ αž€αŸ’αžšαŸ…β€‹αž–αžΈβ€‹αž€αžΆαžšβ€‹αž–αž·αžβ€‹αžαžΆβ€‹αžœαžΆβ€‹αž‡αžΆβ€‹αž‚αž˜αŸ’αžšαŸ„αž„β€‹αžŠαŸβ€‹αž›αŸ’αž’β€‹αž˜αž½αž™β€‹αž–αŸ’αžšαŸ„αŸ‡β€‹αžœαžΆβ€‹αž…αŸ†αžŽαžΆαž™β€‹αž–αŸαž› 11ms αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αŸ”

αž’αŸ’αžœαžΈαŸ—β€‹αž αžΆαž€αŸ‹β€‹αžŠαžΌαž…β€‹αž‡αžΆβ€‹αž›αŸ’αž’ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž·αž“β€‹αž˜αžΆαž“β€‹αž’αŸ’αžœαžΈβ€‹αž…αŸ’αž”αžΆαžŸαŸ‹β€‹αž›αžΆαžŸαŸ‹β€‹αžαžΆβ€‹αžαžΎβ€‹αž’αŸ’αžœαžΈβ€‹αž”αžΆαž“β€‹αž€αžΎαžβ€‹αž‘αžΎαž„β€‹αž–αž·αžβ€‹αž”αŸ’αžšαžΆαž€αžŠαŸ” αž€αŸ’αžšαŸ…αž–αžΈαž–αŸαž›αžœαŸαž›αžΆαž‘αžΌαž‘αŸ… αž™αžΎαž„αž–αž·αžαž‡αžΆαž˜αž·αž“αžƒαžΎαž‰αž’αŸ’αžœαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαžšαž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž› "αžŸαžΆαž…αŸ‹αž…αŸ€αž˜" αž“αŸƒαž’αžαŸ’αžαž”αž‘αž’αž˜αŸ’αž˜αžαžΆαž‡αžΆαž‘αžΌαž‘αŸ…αž˜αž·αž“αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αž‘αŸαŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžœαžΆαž˜αž·αž“αž…αŸ’αž”αžΆαžŸαŸ‹αž€αŸαžŠαŸ„αž™ αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžœαžΆαž˜αžΆαž“αž€αžΆαžšαžšαž’αžΆαž€αŸ‹αžšαž’αž½αž›αž€αŸαžŠαŸ„αž™ αž€αŸαž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‡αžΆαž…αŸ’αžšαžΎαž“αž‘αŸ€αžαŸ–

  • αžαŸ’αž“αžΆαŸ†αž„αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰ αž•αž›αž”αžΌαž€αž“αŸƒαž’αž“αž’αžΆαž“αž“αŸƒαž˜αŸ‚αž€αž’αžΆαž„αžšαž„αž‘αžΆαŸ†αž„αž˜αžΌαž› αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž‚αžΆαžαŸ‹αŸ” αž“αŸ„αŸ‡αž‚αžΊαž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αžšαž€αž±αŸ’αž™αžƒαžΎαž‰αžαžΆαžαžΎαžαŸ’αžšαžΌαžœαž…αŸ†αžŽαžΆαž™αž–αŸαž›αžœαŸαž›αžΆαž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž›αžΎαž€αžΆαžšαžŸαŸ’αž€αŸ‚αž“αžŸαž“αŸ’αž‘αžŸαŸ’αžŸαž“αŸαž–αž·αžŸαŸαžŸαž“αŸαŸ‡αž‘αŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŠαžΆαž€αŸ‹αž“αŸ…αž€αŸ’αžšαŸ„αž˜αžœαžΆαŸ” αž™αžΎαž„αžαŸ’αžšαžΌαžœαžαŸ‚αž˜αžΎαž›αž‘αŸ…αž™αŸ‰αžΆαž„αžŸαŸ’αžœαžΆαž αžΆαž”αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αžαžΆαžαžΎαž˜αžΆαž“ "αž€αž»αž˜αžΆαžš" αž“αž·αž„αž’αžαŸαžšαžαžΆαž˜αž›αž€αŸ’αžαžαžŽαŸ’αžŒ CTEs αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„ - αž αžΎαž™αžŠαž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡ "αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ†αž“αž·αžαžšαž”αžŸαŸ‹αž™αžΎαž„" αŸ”
  • αž…αŸ†αžŽαž»αž…αž‘αžΈαž–αžΈαžšαŸ– αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž‚αžΊ αž–αŸαž›αžœαŸαž›αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžαŸ’αž“αžΆαŸ†αž„αžαŸ‚αž˜αž½αž™. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžαŸ’αž“αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž§αž‘αžΆαž αžšαžŽαŸ αžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αžαžΆαž˜αžšαž™αŸˆαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαžαžΆαžšαžΆαž„αž…αŸ’αžšαžΎαž“αžŠαž„ αž“αŸ„αŸ‡αž…αŸ†αž“αž½αž“αžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†-αžœαžŠαŸ’αžαž“αŸƒαžαŸ’αž“αžΆαŸ†αž„αž“αŸαŸ‡-αž€αžΎαž“αž‘αžΎαž„αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ‚αž“αž€αžΆαžšαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž–αŸαž›αžœαŸαž›αžΆβ€‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·β€‹αž”αžšαž˜αžΆαžŽαžΌβ€‹αžαŸ’αž›αž½αž“αž―αž„β€‹αž“αŸ…αžαŸ‚β€‹αžŠαžŠαŸ‚αž›β€‹αž€αŸ’αž“αž»αž„β€‹αž›αž€αŸ’αžαžαžŽαŸ’αžŒβ€‹αž“αŸƒβ€‹αž•αŸ‚αž“αž€αžΆαžšαŸ” αž“αŸ„αŸ‡αž‚αžΊαžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈαžšαž™αŸˆαž–αŸαž›αžŠαŸ‚αž›αžαŸ’αž“αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžŸαžšαž»αž” αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‚αž»αžŽαžšαž”αžŸαŸ‹αž˜αž½αž™αžŠαŸ„αž™αž˜αž½αž™αž‘αŸ€αž - αž˜αŸ’αžαž„αž‘αŸ€αž "αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αž”αžΆαž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€" αŸ”

αž€αŸ’αž“αž»αž„β€‹αžŸαŸ’αžαžΆαž“αž—αžΆαž–β€‹αž”αŸ‚αž”β€‹αž“αŸαŸ‡ αžŸαžΌαž˜β€‹αž™αž›αŸ‹β€‹αžαžΆ "αžαžΎβ€‹αž’αŸ’αž“αž€β€‹αžŽαžΆβ€‹αž‡αžΆβ€‹αžαŸ†αžŽβ€‹αžαŸ’αžŸαŸ„αž™β€‹αž”αŸ†αž•αž»αž?" αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž˜αž·αž“αž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αŸαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαŸ’αž›αž½αž“αž―αž„αž€αŸαžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„ "αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†" αž“αŸ„αŸ‡αŸ” β€œαž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αž’αŸ†αž–αžΈαž•αŸ‚αž“αž€αžΆαžš αž‚αžΊαž‡αžΆαžŸαž·αž›αŸ’αž”αŸˆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαžαŸ‚αžšαŸ€αž“ αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸβ€¦β€.

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž˜αžΆαž“αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ 1000 αž“αžΆαž€αŸ‹ αž αžΎαž™αž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αž”αž‰αŸ’αž‡αžΌαž“αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž“αŸαŸ‡αž‘αŸ…αž€αžΆαž“αŸ‹αž–αž½αž€αž‚αŸαž˜αŸ’αž“αžΆαž€αŸ‹αŸ—αž”αžΆαž“αž‘αŸαŸ” αžαŸ’αž‰αž»αŸ† αž’αŸ’αž“αž€ αž‚αžΆαžαŸ‹β€‹αžŠαžΉαž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž’αŸ’αž“αž€β€‹αž“αŸ…β€‹αž‘αžΈαž“αŸ„αŸ‡β€‹αž›αŸ‚αž„β€‹αžŠαžΉαž„β€‹αž αžΎαž™αŸ” αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž‚αžΆαžαŸ‹αž“αžΉαž„αžšαŸ€αž“ αž¬αž€αŸαž’αžαŸ‹ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αžΆαžαŸ‹αžαŸ’αžšαžΌαžœαž’αŸ’αžœαžΎαž€αžΆαžšαž₯αž‘αžΌαžœαž“αŸαŸ‡ αž αžΎαž™αžαžΎαž‚αžΆαžαŸ‹αž“αžΉαž„αž‘αž‘αž½αž›αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž“αŸαŸ‡αž“αŸ…αž―αžŽαžΆ?

αž€αžΆαžšαž˜αžΎαž›αžƒαžΎαž‰αž•αŸ‚αž“αž€αžΆαžš

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž‘αžΎαž”αž™αžΎαž„αžŠαžΉαž„αžαžΆ αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžš αž€αžΆαžšαž˜αžΎαž›αžƒαžΎαž‰αžŠαŸαž›αŸ’αž’αž“αŸƒαž•αŸ‚αž“αž€αžΆαžš. [αž’αžαŸ’αžαž”αž‘]

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αžŠαŸ†αž”αžΌαž„αž™αžΎαž„αž”αžΆαž“αž‘αŸ… "αžαžΆαž˜αžšαž™αŸˆαž‘αžΈαž•αŸ’αžŸαžΆαžš" - αžŸαžΌαž˜αžšαž€αž˜αžΎαž›αž“αŸ…αž›αžΎαž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž›αžαžΆαžαžΎαž˜αžΆαž“αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž”αžΆαž“αž”αŸ’αžšαŸ‚αž€αŸ’αž›αžΆαž™αžαžΆαž˜αžΆαž“αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ "αž”αž“αŸ’αžαž•αŸ’αž‘αžΆαž›αŸ‹" αžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αžαžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž…αŸ’αžšαžΎαž“ αž¬αžαž·αž…αž‡αžΆαž„αž“αŸαŸ‡ - αžαžΆαž˜αž“αŸαž™αžαŸ’αžšαž„αŸ‹ αž˜αžΆαž“αžαŸ‚αž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ– αž–αž“αŸ’αž™αž›αŸ‹.depesz.com αžŠαŸ„αž™ Hubert Lubaczewski αŸ” αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž”αž‰αŸ’αž…αžΌαž›αžœαžΆαž› "αž˜αžαž·αž–αŸαžαŸŒαž˜αžΆαž“" αž’αžαŸ’αžαž”αž‘αžαŸ†αžŽαžΆαž„αž“αŸƒαž•αŸ‚αž“αž€αžΆαžš αžœαžΆαž”αž„αŸ’αž αžΆαž‰αž’αŸ’αž“αž€αž“αžΌαžœαžαžΆαžšαžΆαž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž‰αŸ‚αž€αŸ–

  • αž–αŸαž›αžœαŸαž›αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹ node
  • αž–αŸαž›αžœαŸαž›αžΆαžŸαžšαž»αž”αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‚αž€αž’αžΆαž„αžšαž„αž‘αžΆαŸ†αž„αž˜αžΌαž›
  • αž…αŸ†αž“αž½αž“αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž‰αž™αž€αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ†αž–αžΉαž„αž‘αž»αž€αžαžΆαž˜αžŸαŸ’αžαž·αžαž·
  • αžαž½αžšαž”αžŸαŸ‹αžαŸ’αž“αžΆαŸ†αž„αžαŸ’αž›αž½αž“αž―αž„

αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αŸαŸ‡αž€αŸαž˜αžΆαž“αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸ‚αž€αžšαŸ†αž›αŸ‚αž€αž”αŸαžŽαŸ’αžŽαžŸαžΆαžšαž“αŸƒαžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αž•αž„αžŠαŸ‚αžšαŸ” αž’αŸ’αž“αž€β€‹αž”αžΆαž“β€‹αž”αŸ„αŸ‡β€‹αž•αŸ‚αž“αž€αžΆαžšβ€‹αžšαž”αžŸαŸ‹β€‹αž’αŸ’αž“αž€β€‹αž“αŸ…β€‹αž‘αžΈβ€‹αž“αŸ„αŸ‡ αž αžΎαž™β€‹αž“αž·αž™αžΆαž™β€‹αžαžΆβ€‹αŸ– β€‹Β«β€‹αž αŸ αžœαŸ‰αžΆαžŸαžΆ αž“αŸαŸ‡β€‹αž‡αžΆβ€‹αžαŸ†αžŽ αž˜αžΆαž“β€‹αž’αŸ’αžœαžΈβ€‹αžαž»αžŸβ€‹αž“αŸ…β€‹αž‘αžΈαž“αŸ„αŸ‡Β»αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαž˜αžΆαž“αž”αž‰αŸ’αž αžΆαžαžΌαž…αžαžΆαž…αž•αž„αžŠαŸ‚αžšαŸ”

αž‘αžΈαž˜αž½αž™ αž”αžšαž·αž˜αžΆαžŽαžŠαŸαž…αŸ’αžšαžΎαž“αž“αŸƒ "αž…αž˜αŸ’αž›αž„-αž”αž·αž‘αž—αŸ’αž‡αžΆαž”αŸ‹" αŸ” αž’αŸ’αž“αž€β€‹αž™αž€β€‹αžˆαžΎβ€‹αž˜αž½αž™β€‹αžŠαž»αŸ†β€‹αž˜αž€β€‹αž”αž·αž‘β€‹αž“αŸ…β€‹αž‘αžΈβ€‹αž“αŸ„αŸ‡ αž αžΎαž™β€‹αž˜αŸ’αžαž„β€‹αž αžΎαž™β€‹αž˜αŸ’αžαž„β€‹αž‘αŸ€αžβ€‹αŸ”

αž‘αžΈαž–αžΈαžš, αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαžœαž·αž—αžΆαž‚αž›αžΎαž…αŸ†αž“αž½αž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αž’αžΆαž“αž‘αŸαŸ” - αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αžŠαžΌαž…αž‚αŸ’αž“αžΆαžŠαŸ‚αž›αž‘αž·αž“αŸ’αž“αž•αž› EXPLAIN (ANALYZE, BUFFERS)αž™αžΎαž„αž˜αž·αž“αžƒαžΎαž‰αžœαžΆαž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‘αŸαŸ” αž‚αžΆαžαŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž˜αž·αž“αžŠαžΉαž„αž–αžΈαžšαž”αŸ€αž”αž”αŸ†αž”αŸ‚αž€αž–αž½αž€αžœαžΆ αž™αž›αŸ‹ αž“αž·αž„αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž–αž½αž€αž‚αŸαŸ” αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž’αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž…αŸ’αžšαžΎαž“ αž αžΎαž™αžŠαžΉαž„αžαžΆαž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž€αŸ†αž–αž»αž„αž”αŸ‚αž„αž…αŸ‚αž€αžαžΆαžŸ αž“αž·αž„αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž–αŸαžαŸŒαž˜αžΆαž“αž“αŸαŸ‡αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŽαžΆαžŸαŸ‹αŸ”

αž…αŸ†αžŽαž»αž…αž’αžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αž‘αžΈαž”αžΈαž‚αžΊαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαŸ’αžŸαŸ„αž™αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αŸ” αž€αžΆαžšαž”αŸ’αžαŸαž‡αŸ’αž‰αžΆαž…αž·αžαŸ’αžαž‚αžΊαžαžΌαž…αžŽαžΆαžŸαŸ‹ αžœαžΆαž‡αžΆαž€αžΆαžšαž›αŸ’αž’αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžšαŸ€αž„αžšαžΆαž›αŸ‹αž”αŸ’αžšαžΆαŸ†αž˜αž½αž™αžαŸ‚αž˜αŸ’αžαž„ αž αžΎαž™αž›αŸαžαž€αžΌαžŠαžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„ Perl αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž‚αžΊαž‡αžΆ "αž’αžαŸ’αžαž”αž‘αž…αž˜αŸ’αžšαŸ€αž„" αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž™αžΎαž„αž’αžΆαž…αžšαžŸαŸ‹αž“αŸ…αž‡αžΆαž˜αž½αž™αžœαžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αžšαžΏαž„αž˜αž½αž™αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αž™αžΎαž„αž„αžΆαž€αž…αŸαž‰αž–αžΈαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αŸαŸ‡αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αŸ” αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αŸ†αž αž»αžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαžœαž·αž—αžΆαž‚αž“αŸƒ Common Table Expression (CTE) αž“αž·αž„αžαŸ’αž“αžΆαŸ†αž„αžαžΆαž˜αžœαž“αŸ’αžαž•αŸ’αžŸαŸαž„αŸ—αžŠαžΌαž…αž‡αžΆ InitPlan/SubPlan αž‡αžΆαžŠαžΎαž˜αŸ”

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž‡αžΏαžαžΆαžšαžΌαž”αž—αžΆαž–αž“αŸαŸ‡ αž“αŸ„αŸ‡αž–αŸαž›αžœαŸαž›αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαžšαž»αž”αž“αŸƒαžαŸ’αž“αžΆαŸ†αž„αž“αžΈαž˜αž½αž™αŸ—αž‚αžΊαž’αŸ†αž‡αžΆαž„αž–αŸαž›αžœαŸαž›αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαžšαž»αž”αž“αŸƒαžŸαŸ†αžŽαžΎαž‘αžΆαŸ†αž„αž˜αžΌαž›αŸ” αžœαžΆαžŸαžΆαž˜αž‰αŸ’αž‰ - αž–αŸαž›αžœαŸαž›αžΆαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž CTE αž“αŸαŸ‡αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰αž–αžΈαžαŸ’αž“αžΆαŸ†αž„ CTE Scan αž‘αŸαŸ”. αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž™αžΎαž„β€‹αž›αŸ‚αž„β€‹αžŠαžΉαž„β€‹αž…αž˜αŸ’αž›αžΎαž™β€‹αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœβ€‹αž…αŸ†αž–αŸ„αŸ‡β€‹αžšαž™αŸˆαž–αŸαž›β€‹αžŠαŸ‚αž›β€‹αž€αžΆαžšβ€‹αžŸαŸ’αž€αŸ‚αž“ CTE αžαŸ’αž›αž½αž“β€‹αžœαžΆβ€‹αž”αžΆαž“β€‹αž…αŸ†αžŽαžΆαž™β€‹αž–αŸαž›β€‹αž™αžΌαžšβ€‹αž‘αŸ€αžβ€‹αž αžΎαž™αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž–αŸαž›β€‹αž“αŸ„αŸ‡β€‹αž™αžΎαž„β€‹αž”αžΆαž“β€‹αžŠαžΉαž„β€‹αžαžΆβ€‹αžŠαž›αŸ‹β€‹αž–αŸαž›β€‹αžαŸ’αžšαžΌαžœβ€‹αžŸαžšαžŸαŸαžšβ€‹αžαŸ’αž›αž½αž“β€‹αž―αž„β€‹αž αžΎαž™ ហ៊ឺ! αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‚αŸ’αžšαž”αŸ‹αžšαžΌαž”αž“αž·αž™αžΆαž™αžαžΆαŸ– "αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αžŸαžšαžŸαŸαžšαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αžœαžΆαž“αžΉαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŽαžΆαžŸαŸ‹!"

αž™αžΎαž„αž”αžΆαž“αž™αž€αž‡αž„αŸ‹αž’αž˜αŸ’αž˜αžαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‚αŸαž αž‘αŸ†αž–αŸαžšαŸ– αžŸαŸ’αž“αžΌαž›αž•αŸ’αž’αŸ‚αž€αž›αžΎ Node.js + Express αž”αžΆαž“αž”αŸ’αžšαžΎ Bootstrap αž“αž·αž„ D3.js αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αžŠαŸαžŸαŸ’αžšαžŸαŸ‹αžŸαŸ’αž’αžΆαžαŸ” αž αžΎαž™αž€αžΆαžšαžšαŸ†αž–αžΉαž„αž‘αž»αž€αžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αžΆαž“αž—αžΆαž–αž™αž»αžαŸ’αžαž·αž’αž˜αŸŒαž–αŸαž‰αž›αŸαž‰ - αž™αžΎαž„αž”αžΆαž“αž‘αž‘αž½αž›αž‚αŸ†αžšαžΌαžŠαŸ†αž”αžΌαž„αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž› 2 αžŸαž”αŸ’αžαžΆαž αŸαŸ–

  • αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‰αŸ‚αž€αž•αŸ‚αž“αž€αžΆαžšαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“
    αž“αŸ„αŸ‡β€‹αž‚αžΊβ€‹αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡β€‹αž™αžΎαž„β€‹αž’αžΆαž…β€‹αž‰αŸ‚αž€β€‹αž•αŸ‚αž“αž€αžΆαžšβ€‹αžŽαžΆβ€‹αž˜αž½αž™β€‹αž–αžΈβ€‹αž‚αž˜αŸ’αžšαŸ„αž„β€‹αžŠαŸ‚αž›β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αžŠαŸ„αž™ PostgreSQL αŸ”
  • αž€αžΆαžšαžœαž·αž—αžΆαž‚αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒαžαŸ’αž“αžΆαŸ†αž„αžαžΆαž˜αžœαž“αŸ’αž - CTE Scan, InitPlan, SubPlan
  • αž€αžΆαžšαžœαž·αž—αžΆαž‚αž“αŸƒαž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αžŸαžαž·αž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“ - αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž‘αŸ†αž–αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αž–αžΈαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†, αž€αž“αŸ’αž›αŸ‚αž„αž–αžΈαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“, αž–αžΈαžαžΆαžŸ
  • αž‘αž‘αž½αž›αž”αžΆαž“αž—αžΆαž–αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹
    αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ† "αž‡αžΈαž€" αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΎαž˜αŸ’αž”αžΈαž˜αžΎαž› "αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹αžαŸ’αžŸαŸ„αž™αž”αŸ†αž•αž»αž" αž—αŸ’αž›αžΆαž˜αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αž—αžΆαž–αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αžŠαžΌαž…αž“αŸαŸ‡ αžŠαŸ„αž™αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαž”αž“αŸ’αž›αž·αž…αžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžšαž”αžŸαŸ‹αž™αžΎαž„αž›αŸ‚αž„αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžαŸ†αžŽαžΆαž„αž–αŸαž‰αž›αŸαž‰αž“αŸƒαž•αŸ‚αž“αž€αžΆαžšαž“αŸαŸ‡αž‘αŸ€αžαž αžΎαž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžαŸ’αž›αžΈαž‡αžΆαž„αž“αŸαŸ‡αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž™αžΎαž„αž”αžΆαž“αž‰αŸ‚αž€αž›αŸαžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž½αž…αž αžΎαž™ αž αžΎαž™αž”αŸ„αŸ‡αžœαžΆαž‘αŸ…αž†αŸ’αžœαŸαž„ αž“αž·αž„αžŸαŸ’αžαžΆαŸ† αž αžΎαž™αž“αŸ…αž€αžŽαŸ’αžαžΆαž› αž™αžΎαž„αž‘αž»αž€αžαŸ‚αž‡αž½αžšαž‘αžΈαž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αžαžΎαžαŸ’αž“αžΆαŸ†αž„αž”αŸ’αžšαž—αŸαž‘αžŽαžΆαžŠαŸ‚αžšαŸ– CTE Scan αž‡αŸ†αž“αžΆαž“αŸ‹ CTE ឬ Seq Scan αžαžΆαž˜αžŸαž‰αŸ’αž‰αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ”

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžαŸ†αžŽαžΆαž„αž’αž€αŸ’αžŸαžšαž€αžΆαžαŸ‹αžŠαŸ‚αž›αž™αžΎαž„αž αŸ… αž‚αŸ†αžšαžΌαž•αŸ‚αž“αž€αžΆαžš.

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αžαžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž‘αŸ€αžαžŠαŸ‚αž›αž„αžΆαž™αžŸαŸ’αžšαž½αž›? αžœαžΆαž“αžΉαž„αž˜αžΆαž“αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž˜αžΎαž›αžαžΆαžαžΎαž…αŸ†αžŽαŸ‚αž€αž“αŸƒαž–αŸαž›αžœαŸαž›αžΆαžŸαžšαž»αž”αžšαž”αžŸαŸ‹αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž‘αŸ…αžαŸ’αž“αžΆαŸ†αž„αžŽαžΆ - αž αžΎαž™αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚ "αž”αž·αž‘αžœαžΆ" αž‘αŸ…αž…αŸ†αž αŸ€αž„αŸ” αž‚αŸ†αž“αžΌαžŸαžαžΆαž„αž…αŸ†αžŽαž·αž.

αž™αžΎαž„αž…αž„αŸ’αž’αž»αž›αž‘αŸ…αžαŸ’αž“αžΆαŸ†αž„αž αžΎαž™αž˜αžΎαž› - αžœαžΆαž”αŸ’αžšαŸ‚αžαžΆ Seq Scan αž”αžΆαž“αž…αŸ†αžŽαžΆαž™αž–αŸαž›αžαž·αž…αž‡αžΆαž„αž˜αž½αž™αž—αžΆαž‚αž”αž½αž“αž“αŸƒαž–αŸαž›αžœαŸαž›αžΆαžŸαžšαž»αž” αž αžΎαž™ 3/4 αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαžαžŠαŸ„αž™ CTE Scan αŸ” αžšαž“αŸ’αž’αžαŸ‹! αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαžΆαŸ†αžαžΌαž…αž˜αž½αž™αž’αŸ†αž–αžΈ "αž’αžαŸ’αžšαžΆαž—αŸ’αž›αžΎαž„" αž“αŸƒ CTE Scan αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž–αž½αž€αžœαžΆαž™αŸ‰αžΆαž„αžŸαž€αž˜αŸ’αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ†αžŽαž½αžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž–αž½αž€αžœαžΆαž˜αž·αž“αž›αžΏαž“αž‘αŸ - αž–αž½αž€αžœαžΆαž’αž“αŸ‹αž‡αžΆαž„αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž€αžΆαžšαžŸαŸ’αž€αŸαž“αžαžΆαžšαžΆαž„αž’αž˜αŸ’αž˜αžαžΆαŸ” [αž’αžαŸ’αžαž”αž‘] [αž’αžαŸ’αžαž”αž‘]

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆ αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αž”αŸ‚αž”αž“αŸαŸ‡αž‚αžΊαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž‡αžΆαž„ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αž…αž„αŸ’αž’αž»αž›αž‘αŸ…αž•αŸ’αž“αŸ‚αž€αž˜αž½αž™αž—αŸ’αž›αžΆαž˜αŸ— αž αžΎαž™αžƒαžΎαž‰αž§αž‘αžΆαž αžšαžŽαŸαžαžΆ αž…αŸ’αžšαžΎαž“αž‡αžΆαž„αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αž“αŸƒαž–αŸαž›αžœαŸαž›αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“ Seq Scan "αž‰αŸ‰αžΆαŸ†" αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž˜αžΆαž“αž”αŸ’αžšαž—αŸαž‘ Filter αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„ αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž”αŸ„αŸ‡αž…αŸ„αž›αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜αžœαžΆ... αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ„αŸ‡αžšαžΌαž”αž—αžΆαž–αž“αŸαŸ‡αž‘αŸ…αž€αžΆαž“αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹ αž αžΎαž™αž“αž·αž™αžΆαž™αžαžΆ β€œVasya αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαž’αžΆαž€αŸ’αžšαž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€! αžŸαŸ’αžšαž˜αŸƒαž˜αžΎαž› - αž˜αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αžαž»αžŸ!”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž˜αžΆαž“ "αžαž»αž„αžšαž½αž…" αž˜αž½αž™αž…αŸ†αž“αž½αž“αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’αŸ”

αžšαžΏαž„αžŠαŸ†αž”αžΌαž„αžŠαŸ‚αž›αž™αžΎαž„αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž‚αžΊαž”αž‰αŸ’αž αžΆαž”αž„αŸ’αž‚αžαŸ‹αŸ” αž–αŸαž›αžœαŸαž›αžΆαž“αŸƒαžαŸ’αž“αžΆαŸ†αž„αž“αžΈαž˜αž½αž™αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ‚αž“αž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž„αŸ’αž’αž»αž›αž”αž„αŸ’αž αžΆαž‰αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸƒ 1 ΞΌsαŸ” αž αžΎαž™αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž…αŸ†αž“αž½αž“αž“αŸƒαžœαžŠαŸ’αžαžαŸ’αž“αžΆαŸ†αž„αž›αžΎαžŸαž–αžΈαž§αž‘αžΆαž αžšαžŽαŸ 1000 - αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž· PostgreSQL αž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€ "αž“αŸ…αž€αŸ’αž“αž»αž„αž—αžΆαž–αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ" αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž“αŸ…αž–αŸαž›αž‚αžŽαž“αžΆαžαŸ’αžšαž‘αž”αŸ‹αž˜αž€αžœαž·αž‰αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž–αŸαž›αžœαŸαž›αžΆαžŸαžšαž»αž” "αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž˜αž½αž™αžšαžœαžΆαž„ 0.95ms αž“αž·αž„ 1.05ms" αŸ” αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αžΆαžšαžšαžΆαž”αŸ‹αž‘αŸ…αž˜αžΈαž€αŸ’αžšαžΌαžœαž·αž“αžΆαž‘αžΈ αžœαžΆαž˜αž·αž“αž’αžΈαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαž’αžŸαŸ‹ [milli] αžœαž·αž“αžΆαž‘αžΈαžšαž½αž…αž αžΎαž™ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαŸ‚αž™αž€αž–αŸαžαŸŒαž˜αžΆαž“αž“αŸαŸ‡αž‘αŸ…αž€αŸ’αž“αž»αž„αž‚αžŽαž“αžΈαž“αŸ…αž–αŸαž› "αžŸαŸ’αžšαžΆαž™" αž’αž“αž’αžΆαž“αž‘αŸ…αžαŸ’αž“αžΆαŸ†αž„αž“αŸƒ "αž’αŸ’αž“αž€αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“" αž“αŸƒαž•αŸ‚αž“αž€αžΆαžšαŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž…αŸ†αžŽαž»αž…αž‘αžΈαž–αžΈαžšαžŠαŸ‚αž›αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž‡αžΆαž„αž“αŸαŸ‡αž‚αžΊαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž’αž“αž’αžΆαž“ (αž”αžŽαŸ’αžαž»αŸ†αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡) αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžαŸ’αž“αžΆαŸ†αž„αžαžΆαž˜αžœαž“αŸ’αžαŸ” αžœαžΆαž’αŸ’αžœαžΎαž±αŸ’αž™αž™αžΎαž„αž…αŸ†αžŽαžΆαž™αž›αžΎ 2 αžŸαž”αŸ’αžαžΆαž αŸαžŠαŸ†αž”αžΌαž„αž“αŸƒαž‚αŸ†αžšαžΌ αž”αžΌαž€αž“αžΉαž„ 4 αžŸαž”αŸ’αžαžΆαž αŸαž‘αŸ€αžαŸ”

αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“αž”αž‰αŸ’αž αžΆαž”αŸ‚αž”αž“αŸαŸ‡ - αž™αžΎαž„αž’αŸ’αžœαžΎ CTE αž αžΎαž™αžŸαž“αŸ’αž˜αžαŸ‹αžαžΆαž’αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαŸ” αžαžΆαž˜αž–αž·αž PostgreSQL αž‚αžΊ "αž†αŸ’αž›αžΆαž" αž αžΎαž™αž“αžΉαž„αž˜αž·αž“αž’αžΆαž“αž’αŸ’αžœαžΈαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž‘αŸαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž™αžΎαž„αž™αž€αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαžŠαŸ†αž”αžΌαž„αž–αžΈαžœαžΆ αž αžΎαž™αž˜αž½αž™αžšαž™αžŠαŸ†αž”αžΌαž„αž–αžΈ CTE αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž™αžΎαž„αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž•αŸ‚αž“αž€αžΆαžšαž αžΎαž™αž™αž›αŸ‹ - αžœαžΆαž…αž˜αŸ’αž›αŸ‚αž€ αž™αžΎαž„αž˜αžΆαž“ 3 buffers (αž‘αŸ†αž–αŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™) "αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹" αž“αŸ…αž€αŸ’αž“αž»αž„ Seq Scan, 1 αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„ CTE Scan αž“αž·αž„ 2 αž‘αŸ€αžαž“αŸ…αž€αŸ’αž“αž»αž„ CTE Scan αž‘αžΈαž–αžΈαžšαŸ” αž“αŸ„αŸ‡αž‚αžΊαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αžŸαž„αŸ’αžαŸαž”αž’αŸ’αžœαžΈαŸ—αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αžΎαž„αž™αžΎαž„αž“αžΉαž„αž‘αž‘αž½αž›αž”αžΆαž“ 6 αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αžΈαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αž“αŸ’αž‘αŸ‡αž™αžΎαž„αž’αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ‚ 3 αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡! CTE Scan αž˜αž·αž“αž’αžΆαž“αž’αŸ’αžœαžΈαž–αžΈαž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‡αžΆαž˜αž½αž™αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αž“αŸ„αŸ‡αž‚αžΊαž˜αžΆαž“αž’αŸ’αžœαžΈαž˜αž½αž™αžαž»αžŸαž“αŸ…αž‘αžΈαž“αŸαŸ‡!

αžαžΆαž˜αž–αž·αžαž‘αŸ… αžœαžΆαž”αŸ’αžšαŸ‚αžαžΆ αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž‘αŸ†αž–αŸαžšαž‘αžΆαŸ†αž„ 3 αž“αŸƒαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž–αžΈ Seq Scan αž‘αžΈαž˜αž½αž™αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†αž€αžΆαžšαžŸαŸ’αž€αŸαž“ CTE αž›αžΎαž€αž‘αžΈ 1 αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž›αŸαž 1 αž“αž·αž„ 2 αž‘αŸ€αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αž±αŸ’αž™αž‚αžΆαžαŸ‹ αž–αŸ„αž›αž‚αžΊαžŸαžšαž»αž”αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ 2 αž‘αŸ†αž–αŸαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αž·αž“αž˜αŸ‚αž“ 3 αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž αžΎαž™αžšαžΌαž”αž—αžΆαž–αž“αŸαŸ‡αž”αžΆαž“αž“αžΆαŸ†αž™αžΎαž„αž‘αŸ…αžšαž€αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αžαžΆαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž“αŸƒαž•αŸ‚αž“αž€αžΆαžšαž˜αž½αž™αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžŠαžΎαž˜αžˆαžΎαž‘αŸ€αžαž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž”αŸ’αžšαž—αŸαž‘αž€αŸ’αžšαžΆαž αŸ’αžœαž·αž…αžŸαŸŠαžΈαž€αŸ’αž›αžΌαŸ” αž αžΎαž™αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αžŠαžΌαž…αž“αŸαŸ‡ αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž™αžΎαž„αž™αž›αŸ‹αžαžΆ "αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αž–αžΈαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ†αž”αžΌαž„" αŸ” αž“αŸ„αŸ‡αž‚αžΊαž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαž CTE αž–αžΈ pg_class αž αžΎαž™αž”αžΆαž“αžŸαŸ’αž“αžΎαžŸαž»αŸ†αžœαžΆαž–αžΈαžšαžŠαž„ αž αžΎαž™αž–αŸαž›αžœαŸαž›αžΆαžšαž”αžŸαŸ‹αž™αžΎαž„αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ†αžŽαžΆαž™αž›αžΎαžŸαžΆαžαžΆαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αžŸαŸ’αž“αžΎαžŸαž»αŸ†αžœαžΆαž‡αžΆαž›αžΎαž€αž‘αžΈαž–αžΈαžšαŸ” αžœαžΆαž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αžαžΆαž€αžΆαžšαž’αžΆαž“αž’αžΆαžαž»αž‘αžΈ 2 αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαžαŸ’αž›αŸƒαž‡αžΆαž„αž€αžΆαžšαž’αžΆαž“αž’αžΆαžαž»αž‘αžΈ 101 αž–αžΈαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αž“αŸ’αž‘αŸ‡αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž™αžΎαž„αžŠαž€αžŠαž„αŸ’αž αžΎαž˜αž…αŸαž‰αž˜αž½αž™αžšαž™αŸˆαŸ” αž–αž½αž€β€‹αž‚αŸβ€‹αž”αžΆαž“β€‹αž“αž·αž™αžΆαž™β€‹αžαžΆ β€œαž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡ αž“αžΈαž’αžΌ αž’αŸ’αž“αž€β€‹αžŸαŸ’αž‚αžΆαž›αŸ‹β€‹αž€αž»αž„αž αŸ’αžœαžΌβ€‹αž αžΎαž™! αž₯αž‘αžΌαžœαž“αŸαŸ‡αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžšαž”αžŸαŸ‹αž™αžΎαž„αž‚αžΊαžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸ…αž›αžΎαž’αŸαž€αŸ’αžšαž„αŸ‹αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αž₯αž‘αžΌαžœβ€‹αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αž”αŸ’αžšαžΎβ€‹αžœαžΆβ€‹αž”αžΆαž“Β»αŸ” [αž’αžαŸ’αžαž”αž‘]

αž€αžΆαžšαž”αž„αŸ’αžšαž½αž”αž”αž„αŸ’αžšαž½αž˜αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»

αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ 1000 αžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαž€αžŠαž„αŸ’αž αžΎαž˜αž’αŸ†αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž™αžΎαž„β€‹αž”αžΆαž“β€‹αž™αž›αŸ‹β€‹αžαžΆ αž™αžΎαž„β€‹αž˜αžΆαž“β€‹αžαŸ‚β€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž˜αŸ "αž”αŸ’αžšαž™αž»αž‘αŸ’αž’" αžšαžΆαž”αŸ‹αžšαž™β€‹αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αž αžΎαž™β€‹αž€αžΆαžšβ€‹αž…αž˜αŸ’αž›αž„β€‹αž”αž·αž‘αž—αŸ’αž‡αžΆαž”αŸ‹β€‹αž‘αžΆαŸ†αž„β€‹αž’αžŸαŸ‹β€‹αž“αŸαŸ‡β€‹αž“αŸ…β€‹αž›αžΎβ€‹αž•αŸ’αž“αŸ‚αž€β€‹αž“αŸƒβ€‹αž’αŸ’αž“αž€β€‹αž’αž—αž·αžœαžŒαŸ’αžαž“αŸβ€‹αž‚αžΊβ€‹αž˜αž·αž“β€‹αž„αžΆαž™β€‹αžŸαŸ’αžšαž½αž›β€‹αž‘αžΆαž›αŸ‹β€‹αžαŸ‚β€‹αžŸαŸ„αŸ‡αŸ” αž™αžΎαž„αž”αžΆαž“αžŠαžΉαž„αžαžΆαž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αŸ’αžšαž˜αžΌαž›αžœαžΆαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž‡αžΆαž‘αžΌαž‘αŸ… αž˜αžΆαž“αž˜αŸ‰αžΌαžŒαž»αž›αžŸαŸ’αžŠαž„αŸ‹αžŠαžΆαžšαžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαž˜αžΌαž›αžŸαŸ’αžαž·αžαž· αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžœαžΆαž€αŸαžαŸ’αžšαžΌαžœαž€αžΆαžšαž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαž€αž˜αŸ’αž˜αž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αž„αžŠαŸ‚αžš - αž“αŸαŸ‡ αž˜αŸ‰αžΌαžŒαž»αž› pg_stat_statements. αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αžΆαžαŸ‹αž˜αž·αž“αžŸαž˜αž“αžΉαž„αž™αžΎαž„αž‘αŸαŸ”

αž‘αžΈαž˜αž½αž™ αžœαžΆαž€αŸ†αžŽαžαŸ‹αž‘αŸ…αžŸαŸ†αžŽαž½αžšαžŠαžΌαž…αž‚αŸ’αž“αžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” QueryIds αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ. αž“αŸ„αŸ‡αž‚αžΊαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αŸ’αžœαžΎαžŠαŸ†αž”αžΌαž„ SET search_path = '01'; SELECT * FROM user LIMIT 1;αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ SET search_path = '02'; αž“αž·αž„αžŸαŸ†αžŽαžΎαžŠαžΌαž…αž‚αŸ’αž“αžΆ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžŸαŸ’αžαž·αžαž·αž“αŸƒαž˜αŸ‰αžΌαžŒαž»αž›αž“αŸαŸ‡αž“αžΉαž„αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆ αž αžΎαž™αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαž˜αžΌαž›αžŸαŸ’αžαž·αžαž·αž‘αžΌαž‘αŸ…αž‡αžΆαž–αž·αžŸαŸαžŸαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž”αž‘αž“αŸƒαž‘αž˜αŸ’αžšαž„αŸ‹αžŸαŸ†αžŽαžΎαž“αŸαŸ‡ αžŠαŸ„αž™αž˜αž·αž“αž‚αž·αžαž–αžΈαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαŸ”

αž…αŸ†αžŽαž»αž…αž‘αžΈαž–αžΈαžšαžŠαŸ‚αž›αžšαžΆαžšαžΆαŸ†αž„αž™αžΎαž„αž–αžΈαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžœαžΆαž‚αžΊ αž€αž„αŸ’αžœαŸ‡αž•αŸ‚αž“αž€αžΆαžš. αž–αŸ„αž›β€‹αž‚αžΊβ€‹αž’αžαŸ‹β€‹αž˜αžΆαž“β€‹αž‚αž˜αŸ’αžšαŸ„αž„β€‹αž‘αŸ αž‚αžΊβ€‹αž˜αžΆαž“β€‹αžαŸ‚β€‹αžŸαŸ†αžŽαžΎβ€‹αž αŸ’αž“αžΉαž„β€‹αž―αž„αŸ” αž™αžΎαž„β€‹αžƒαžΎαž‰β€‹αžαžΆβ€‹αž˜αžΆαž“β€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αžαž™β€‹αž…αž»αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž™αžΎαž„β€‹αž˜αž·αž“β€‹αž™αž›αŸ‹β€‹αž–αžΈβ€‹αž˜αžΌαž›αž αŸαžαž»β€‹αž‘αŸαŸ” αž αžΎαž™αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž™αžΎαž„αžαŸ’αžšαž›αž”αŸ‹αž‘αŸ…αž”αž‰αŸ’αž αžΆαž“αŸƒαžŸαŸ†αžŽαž»αŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž™αŸ‰αžΆαž„αž†αžΆαž”αŸ‹αžšαž αŸαžŸαŸ”

αž αžΎαž™αž–αŸαž›αž…αž»αž„αž€αŸ’αžšαŸ„αž™ - αž€αž„αŸ’αžœαŸ‡ "αž€αžΆαžšαž–αž·αž". αž“αŸ„αŸ‡αž‚αžΊαž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž€αžšαžŽαžΈαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŸαŸ†αžŽαž½αžšαž”αžΆαž“αž‘αŸ - αž˜αž·αž“αž˜αžΆαž“αž‘αŸ αž˜αžΆαž“αžαŸ‚αžŸαŸ’αžαž·αžαž·αžŸαžšαž»αž”αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ” αžαŸ’αžœαžΈαž”αžΎαž’αžΆαž…αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž“αŸαŸ‡αž€αŸαžŠαŸ„αž™ αžœαžΆαž–αž·αžαž‡αžΆαž›αŸ†αž”αžΆαž€αžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž–αž½αž€αž™αžΎαž„αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž”αŸ’αžšαž™αž»αž‘αŸ’αž’αž“αžΉαž„αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž”αž·αž‘αž—αŸ’αž‡αžΆαž”αŸ‹ αž αžΎαž™αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαžšαžŸαŸαžš αž’αŸ’αž“αž€αž”αŸ’αžšαž˜αžΌαž›.

αž’αŸ’αž“αž€αž”αŸ’αžšαž˜αžΌαž›αž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαž˜αžšαž™αŸˆ SSH αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‡αžΆαž˜αž½αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαžœαž·αž‰αŸ’αž‰αžΆαž”αž“αž”αžαŸ’αžš αž“αž·αž„ tail -F "αžαŸ„αž„" αž‘αŸ…αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž‚αŸ’αž‚αž“αŸαŸ‡αŸ” αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“ "αž€αž‰αŸ’αž…αž€αŸ‹" αž–αŸαž‰αž›αŸαž‰αž“αŸƒαž―αž€αžŸαžΆαžšαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž‘αžΆαŸ†αž„αž˜αžΌαž›αžŠαŸ‚αž›αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž”αž„αŸ’αž€αžΎαžαŸ” αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαŸ’αž›αž½αž“αž―αž„αž‚αžΊαžαž·αž…αžαž½αž…αž”αŸ†αž•αž»αž αžŠαŸ„αž™αžŸαžΆαžšαž™αžΎαž„αž˜αž·αž“αž‰αŸ‚αž€αž’αŸ’αžœαžΈαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αž™αžΎαž„αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž†αŸ’αž›αž»αŸ‡αž˜αžΎαž›αž…αžšαžΆαž…αžšαžŽαŸαž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”

αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž™αžΎαž„αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαžšαžŸαŸαžšαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ Node.js αžšαž½αž…αž αžΎαž™ αž™αžΎαž„αž”αžΆαž“αž”αž“αŸ’αžαžŸαžšαžŸαŸαžšαž’αŸ’αž“αž€αž”αŸ’αžšαž˜αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαŸ” αž αžΎαž™αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαž“αŸαŸ‡αž”αžΆαž“αžšαžΆαž”αŸ‹αž‡αžΆαžŸαž»αž…αžšαž·αžαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αž–αŸ’αžšαŸ„αŸ‡αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎ JavaScript αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αžαŸ’αžαž”αž‘αžŠαŸ‚αž›αž˜αžΆαž“αž‘αž˜αŸ’αžšαž„αŸ‹αžαŸ’αžŸαŸ„αž™ αžŠαŸ‚αž›αž‡αžΆαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αŸ” αž αžΎαž™αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Node.js αžαŸ’αž›αž½αž“αžœαžΆαž‡αžΆαžœαŸαž‘αž·αž€αžΆ backend αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαž€αžΆαžšαž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž› αž“αž·αž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž‡αžΆαž˜αž½αž™αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰ αž αžΎαž™αž‡αžΆαž€αžΆαžšαž–αž·αžαž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŸαŸ’αž‘αŸ’αžšαžΈαž˜αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŽαžΆαž˜αž½αž™αŸ”

αžŠαžΌαž…αŸ’αž“αŸ„αŸ‡αž αžΎαž™ αž™αžΎαž„ "αž›αžΆαžαžαŸ’αžšαžŠαžΆαž„" αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž–αžΈαžš: αž‘αžΈαž˜αž½αž™ "αžŸαŸ’αžαžΆαž”αŸ‹" αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αž αžΎαž™αž™αž€αžœαžΆαž‘αŸ…αžαŸ’αž›αž½αž“αž™αžΎαž„ αž“αž·αž„αž‘αžΈαž–αžΈαžšαžŠαžΎαž˜αŸ’αž”αžΈαžŸαž½αžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‡αžΆαž‘αŸ€αž„αž‘αžΆαžαŸ‹αŸ” "αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αž„αŸ’αž αžΆαž‰αžαžΆαžŸαž‰αŸ’αž‰αžΆαžŠαŸ‚αž›αž˜αžΆαž“ oid 123 αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαžΆαžšαžΆαŸ†αž„" αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž˜αž·αž“αž˜αžΆαž“αž“αŸαž™αž’αŸ’αžœαžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž‘αŸ αž αžΎαž™αžœαžΆαž‡αžΆαž€αžΆαžšαž›αŸ’αž’αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαž½αžšαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαžΆ "តើ OID = 123 αž‡αžΆαž’αŸ’αžœαžΈ?" αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž αžΎαž™ αž™αžΎαž„β€‹αžŸαž½αžšβ€‹αž‡αžΆβ€‹αž‘αŸ€αž„αž‘αžΆαžαŸ‹β€‹αž“αžΌαžœβ€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αž˜αž·αž“β€‹αž‘αžΆαž“αŸ‹β€‹αžŠαžΉαž„β€‹αž’αŸ†αž–αžΈβ€‹αžαŸ’αž›αž½αž“β€‹αž™αžΎαž„αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

β€œαž˜αžΆαž“αžšαžΏαž„αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αž·αž“αž”αžΆαž“αž‚αž·αž αž‚αžΊαž˜αžΆαž“αžƒαŸ’αž˜αž»αŸ†αž˜αž½αž™αž”αŸ’αžšαž—αŸαž‘αžŠαžΌαž…αžŠαŸ†αžšαžΈ!..” αž™αžΎαž„αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αž„αŸ’αž€αžΎαžαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž“αŸαŸ‡ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αž…αž„αŸ‹αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž…αŸ†αž“αž½αž“ 10αŸ” αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž”αŸ†αž•αž»αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αžšαž”αžŸαŸ‹αž™αžΎαž„ αžŠαŸ‚αž›αž”αž‰αŸ’αž αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αž”αžΆαž“αž€αžΎαžαž‘αžΎαž„αžŠαŸ‚αž›αž–αž·αž”αžΆαž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸ’αž“αž»αž„αž€αŸ†αž‘αž»αž„αžαŸ’αžšαžΈαž˜αžΆαžŸαž‘αžΈ XNUMX αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž˜αž½αž™αžšαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ - αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž…αž„αŸ‹αž”αžΆαž“αžœαžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαž˜αžΆαž“αž•αžΆαžŸαž»αž€αž—αžΆαž–αŸ”

αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜ αž›αŸ†αž αžΌαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αžΆαž“αž‘αŸ†αž αŸ†αž’αŸ† αž“αž·αž„αžŸαž€αž˜αŸ’αž˜αŸ” αžαžΆαž˜αž–αž·αžαž‘αŸ… αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αžΆαž“ αž‚αžΊαž‡αžΆαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž™αžΎαž„αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ” αž™αžΎαž„αž€αŸαž”αŸ’αžšαžΎ PostgreSQL αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αž‘αž·αž“αŸ’αž“αž“αŸαž™αž•αž„αžŠαŸ‚αžšαŸ” αž αžΎαž™αž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαž›αžΏαž“αž‡αžΆαž„αž€αŸ’αž“αž»αž„αž€αžΆαžš "αž…αžΆαž€αŸ‹" αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαž‡αžΆαž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž“αŸ„αŸ‡αž‘αŸαŸ” COPY αž“αŸ…αž‘αžΎαž™αŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚ "αž…αžΆαž€αŸ‹" αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αŸαŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αžŸαŸ†αžŽαžΎαž”αŸ’αžšαž αŸ‚αž› 50k αž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αž½αž™αžšαž™ αž“αŸ„αŸ‡αžœαžΆαž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαž€αŸ†αžŽαžαŸ‹αž αŸαžαž» 100-150GB αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αžαŸ’αžšαžΌαžœ "αž€αžΆαžαŸ‹" αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαž»αž„αž”αŸ’αžšαž™αŸαžαŸ’αž“αŸ”

αžŠαŸ†αž”αžΌαž„αž™αžΎαž„αž’αŸ’αžœαžΎ αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αžαžΆαž˜αžαŸ’αž„αŸƒαž–αžΈαž–αŸ’αžšαŸ„αŸ‡αžŠαŸ„αž™ αž“αž·αž„αž’αŸ† αž‚αŸ’αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž“αžΉαž„αž€αžΆαžšαž‡αžΆαž”αŸ‹αž‘αžΆαž€αŸ‹αž‘αž„αž‚αŸ’αž“αžΆαžšαžœαžΆαž„αžαŸ’αž„αŸƒαž“αŸ„αŸ‡αž‘αŸαŸ” αžαžΎαžœαžΆαžαž»αžŸαž‚αŸ’αž“αžΆαž™αŸ‰αžΆαž„αžŽαžΆαž…αŸ†αž–αŸ„αŸ‡αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αžΆαž“αž€αžΆαž›αž–αžΈαž˜αŸ’αžŸαž·αž›αž˜αž·αž‰ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αž”αŸ‹αž“αŸαŸ‡αž’αŸ’αž“αž€αž”αžΆαž“αž”αž‰αŸ’αž…αŸαž‰αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ - αž“αž·αž„αžŸαŸ’αžαž·αžαž·αžαŸ’αž˜αžΈαž˜αž½αž™αž…αŸ†αž“αž½αž“αžšαž½αž…αž‘αŸ…αž αžΎαž™αŸ”

αž‘αžΈαž–αžΈαžšαž™αžΎαž„αž”αžΆαž“αžšαŸ€αž“ (αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αžαŸ†) αž›αžΏαž“αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžšαžŸαŸαžšαžŠαŸ„αž™αž”αŸ’αžšαžΎ COPY. αž“αŸ„αŸ‡αž‚αžΊαž˜αž·αž“αž˜αŸ‚αž“αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‘αŸαŸ” COPYαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž‚αžΆαžαŸ‹αž›αžΏαž“αž‡αžΆαž„ INSERTαž“αž·αž„αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž›αžΏαž“αž‡αžΆαž„αž˜αž»αž“αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž…αŸ†αžŽαž»αž…αž‘αžΈαž”αžΈ - αžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαžαŸ‚ αž”αŸ„αŸ‡αž”αž„αŸ‹αž‚αž“αŸ’αž›αžΉαŸ‡αžšαŸ€αž„αŸ—αžαŸ’αž›αž½αž“ αž“αž·αž„αžŸαŸ„αž”αžšαž‘αŸαžŸ. αž“αŸ„αŸ‡β€‹αž‚αžΊβ€‹αž™αžΎαž„β€‹αž˜αž·αž“β€‹αž˜αžΆαž“β€‹αžŸαž»αž…αžšαž·αžβ€‹αž—αžΆαž–β€‹αž™αŸ„αž„β€‹αž‘αžΆαž›αŸ‹β€‹αžαŸ‚β€‹αžŸαŸ„αŸ‡αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αžαžΆαžšαžΆαž„αžŠαŸ‚αž›αž˜αžΆαž“ FKs αž˜αž½αž™αž‚αžΌ αž αžΎαž™αž’αŸ’αž“αž€αž“αž·αž™αžΆαž™αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαžΆ "αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž™αŸ„αž„αžŠαŸ„αž™ FK αž§αž‘αžΆαž αžšαžŽαŸαž‘αŸ…αž€αŸ’αžšαž»αž˜αž“αŸƒαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆ" αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž”αž‰αŸ’αž…αžΌαž›αžœαžΆ PostgreSQL αž‚αŸ’αž˜αžΆαž“αžŸαž›αŸ‹αž’αŸ’αžœαžΈαž€αŸ’αžšαŸ…αž–αžΈαžšαž”αŸ€αž”αž™αž€αžœαžΆ αž αžΎαž™αž’αŸ’αžœαžΎαžœαžΆαžŠαŸ„αž™αžŸαŸ’αž˜αŸ„αŸ‡αžαŸ’αžšαž„αŸ‹ SELECT 1 FROM master_fk1_table WHERE ... αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαžŠαŸ‚αž›αž’αŸ’αž“αž€αž€αŸ†αž–αž»αž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž‰αŸ’αž…αžΌαž› - αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž“αŸαŸ‡αž˜αžΆαž“αžœαžαŸ’αžαž˜αžΆαž“αž“αŸ…αž‘αžΈαž“αŸ„αŸ‡ αžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αž·αž“ "αž”αŸ†αž”αŸ‚αž€" αžŸαŸ„αž”αžšαž‘αŸαžŸαž“αŸαŸ‡αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαž€αžαŸ‹αžαŸ’αžšαžΆαž˜αž½αž™αž‘αŸ…αž€αžΆαž“αŸ‹αžαžΆαžšαžΆαž„αž‚αŸ„αž›αžŠαŸ… αž“αž·αž„αžŸαž“αŸ’αž‘αžŸαŸ’αžŸαž“αŸαžšαž”αžŸαŸ‹αžœαžΆ αž™αžΎαž„αž‘αž‘αž½αž›αž”αžΆαž“αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž”αž“αŸ’αžαŸ‚αž˜αž“αŸƒαž€αžΆαžšαž’αžΆαž“αž–αžΈαžαžΆαžšαžΆαž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αžœαžΆαžŸαŸ†αžŠαŸ…αž›αžΎαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡ - αž—αžΆαžšαž€αž·αž…αŸ’αž…αžšαž”αžŸαŸ‹αž™αžΎαž„αž‚αžΊαž€αžαŸ‹αžαŸ’αžšαžΆαž±αŸ’αž™αž”αžΆαž“αž…αŸ’αžšαžΎαž“αžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“ αž“αž·αž„αž›αžΏαž“αžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž“αŸ’αž‘αž»αž€αžαž·αž…αž”αŸ†αž•αž»αžαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ FK - αž…αž»αŸ‡!

αž…αŸ†αžŽαž»αž…αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž‚αžΊαž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ† αž“αž·αž„αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αŸ” αžŠαŸ†αž”αžΌαž„ αž™αžΎαž„αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž–αž½αž€αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ - αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž—αŸ’αž›αžΆαž˜αŸ— αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž˜αž€αžŠαž›αŸ‹ αž’αŸ’αžœαžΎαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž—αŸαž‘αžαŸαž”αŸ’αž›αŸαžαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” "αž”αžΌαž€αž˜αž½αž™" αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž“αŸ’αž›αžΉαŸ‡. αž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαžŽαžΆαžŸαŸ‹ αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž› αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžšαžΏαž„αž’αžΆαž€αŸ’αžšαž€αŸ‹αžŠαžΌαž…αž‚αŸ’αž“αžΆ - αž’αŸ’αž“αž€αž”αž‰αŸ’αž…αžΌαž›αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž˜αž½αž™ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαŸ’αžšαžΌαžœαž”αž„αŸ’αžαŸ†αž±αŸ’αž™αž’αžΆαž“ αž“αž·αž„αžŸαžšαžŸαŸαžšαž’αŸ’αžœαžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαž–αžΈαžαžΆαžšαžΆαž„αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž‡αžΆαž„αž“αŸαŸ‡αž‘αŸ…αž‘αŸ€αž αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ‚αž’αžΆαž“ αž“αž·αž„αžŸαžšαžŸαŸαžšαž‘αŸ αž’αŸ’αž“αž€αž€αŸαž’αŸ’αžœαžΎαžœαžΆαžšαžΆαž›αŸ‹αž–αŸαž›αžŠαŸ‚αžšαŸ”

αž₯αž‘αžΌαžœαžŸαŸ’αžšαž˜αŸƒαžαžΆαž’αŸ’αž“αž€αž˜αžΆαž“αžαžΆαžšαžΆαž„αžŠαŸ‚αž›αž’αŸ’αž“αž€αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αžšαžΆαž”αŸ‹αž…αŸ†αž“αž½αž“αžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αž”αžΆαž“αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αŸ– +1, +1, +1, ..., +1. αž αžΎαž™αž‡αžΆαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž’αŸ’αž“αž€αž˜αž·αž“αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαž‘αŸ - αžœαžΆαž’αžΆαž…αž‘αŸ…αžšαž½αž…αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ” αž•αž›αž”αžΌαž€αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αž„αž…αžΆαŸ†αž“αŸ…αž›αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαž˜αžΌαž› αž αžΎαž™αž•αŸ’αž‰αžΎαž‘αŸ…αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„αž–αŸαž›αžαŸ‚αž˜αž½αž™ +10.

αž”αžΆαž‘/αž…αžΆαžŸ αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“ αžŸαž»αž…αžšαž·αžαž—αžΆαž–αž‘αžΌαž‡αžΈαžαž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž’αžΆαž… "αžŠαž½αž›αžšαž›αŸ†" αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžšαžŽαžΈαžŸαŸ’αž‘αžΎαžšαžαŸ‚αž˜αž·αž“αž”αŸ’αžšαžΆαž€αžŠαž”αŸ’αžšαž‡αžΆ - αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž’αŸ’αž“αž€αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž’αž˜αŸ’αž˜αžαžΆ αžœαžΆαž˜αžΆαž“αžαŸ’αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ αž’αŸ’αž“αž€αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž“αŸ…αž›αžΎ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž―αž€αžŸαžΆαžš... αž‡αžΆαž‘αžΌαž‘αŸ… αžœαžΆαž˜αž·αž“αž˜αžΆαž“αžαž˜αŸ’αž›αŸƒαž‘αŸαŸ” αž€αžΆαžšαž”αžΆαžαŸ‹αž”αž„αŸ‹αž•αž›αž·αžαž—αžΆαž–αžŠαŸ‚αž›αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž”αžΆαž“αž–αžΈαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‚αž“αŸ’αž›αžΉαŸ‡/FK αž‚αžΊαž˜αž·αž“αžŸαž˜αž“αžΉαž„αž€αžΆαžšαž…αŸ†αžŽαžΆαž™αžŠαŸ‚αž›αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž”αžΆαž“αž“αŸ„αŸ‡αž‘αŸαŸ”

αžœαžΆαžŠαžΌαž…αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžš hashing αŸ” αžŸαŸ†αžŽαžΎαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αž”αžΆαž“αž˜αž€αžšαž€αž’αŸ’αž“αž€ αž’αŸ’αž“αž€αž‚αžŽαž“αžΆαž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αž–αžΈαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αžŸαžšαžŸαŸαžšαžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αŸ’αžšαžΆαž”αŸ‹αžœαžΆαž‘αŸ…αž’αŸ’αž“αž€αžšαžΆαž›αŸ‹αž‚αŸ’αž“αžΆαŸ” αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαž›αŸ’αž’αžšαž αžΌαžαžŠαž›αŸ‹αž–αŸαž›αžαž αž˜αžΆαž“αž˜αž“αž»αžŸαŸ’αžŸαž‘αžΈαž–αžΈαžšαž˜αž€αžšαž€αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αž„αŸ‹αžαžαžšαžΏαž„αžŠαžΌαž…αž‚αŸ’αž“αžΆ - αž αžΎαž™αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαžΆαžšαžΆαŸ†αž„ αž αžΎαž™αž“αŸαŸ‡αž‚αžΊαž’αžΆαž€αŸ’αžšαž€αŸ‹αžšαž½αž…αž‘αŸ…αž αžΎαž™αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž’αžΆαž…αž•αŸ’αž‘αŸαžšαž‡αŸ†αž“αžΆαž“αŸ‹αž“αŸƒαž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž˜αž½αž™αž…αŸ†αž“αž½αž“αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœ (αž‘αžΆαž€αŸ‹αž‘αž„αž‘αŸ…αž“αžΉαž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™) αžœαžΆαž‡αžΆαž€αžΆαžšαž”αŸ’αžšαžŸαžΎαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžœαžΆαŸ”

αžœαžΆαž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž€αžΆαžšαž›αŸ’αž’αž₯αžαžαŸ’αž…αŸ„αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎ MD5 αž–αžΈαž’αžαŸ’αžαž”αž‘ - αžŸαŸ†αžŽαžΎ αž•αŸ‚αž“αž€αžΆαžš αž‚αŸ†αžšαžΌ... αž™αžΎαž„αž‚αžŽαž“αžΆαžœαžΆαž“αŸ…αž•αŸ’αž“αŸ‚αž€αž’αŸ’αž“αž€αž”αŸ’αžšαž˜αžΌαž› αž αžΎαž™ "αž…αžΆαž€αŸ‹" αž›αŸαžαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž…αž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ” αžšαž™αŸˆαž–αŸαž›αž“αŸƒ MD5 αž“αž·αž„αž€αžΆαžšαž”αŸ‚αž„αž…αŸ‚αž€αž”αŸ’αžšαž…αžΆαŸ†αžαŸ’αž„αŸƒαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αž˜αž·αž“αž–αŸ’αžšαž½αž™αž”αžΆαžšαž˜αŸ’αž—αž’αŸ†αž–αžΈαž€αžΆαžšαž”αŸ‰αŸ‡αž‘αž„αŸ’αž‚αž·αž…αžŠαŸ‚αž›αž’αžΆαž…αž€αžΎαžαž˜αžΆαž“αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αžαžβ€‹αžšαžΏαž„β€‹αž‘αžΆαŸ†αž„β€‹αž’αžŸαŸ‹β€‹αž“αŸαŸ‡β€‹αž”αžΆαž“β€‹αž›αžΏαž“ αž™αžΎαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž€αŸ‚αž”αŸ’αžšαŸ‚β€‹αž“αžΈαžαž·αžœαž·αž’αžΈβ€‹αžαžβ€‹αžŠαŸ„αž™β€‹αžαŸ’αž›αž½αž“β€‹αž―αž„αŸ”

αžαžΎαž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αžšαž”αŸ€αž”αžŽαžΆ? αž™αžΎαž„β€‹αž˜αžΆαž“β€‹αžŸαŸ†αžŽαž»αŸ†β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αž˜αž½αž™β€‹αž…αŸ†αž“αž½αž“ αž™αžΎαž„β€‹αž”αŸ†αž”αŸ‚αž€β€‹αžœαžΆβ€‹αž‡αžΆβ€‹αžαžΆαžšαžΆαž„β€‹αž‡αžΆβ€‹αž…αŸ’αžšαžΎαž“ αž αžΎαž™β€‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž˜αž€β€‹αž…αž˜αŸ’αž›αž„β€‹αžœαžΆ - αž‘αžΈαž˜αž½αž™β€‹αž‘αŸ…β€‹αž‘αžΈβ€‹αž˜αž½αž™ αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž˜αž€β€‹αž‘αžΈαž–αžΈαžšβ€‹αž‘αŸ…β€‹αž‘αžΈαž”αžΈ... αžœαžΆβ€‹αž˜αž·αž“β€‹αžŸαŸ’αžšαž½αž›β€‹αž‘αŸ αž–αŸ’αžšαŸ„αŸ‡β€‹αž™αžΎαž„β€‹αž αžΆαž€αŸ‹β€‹αžŠαžΌαž…β€‹αž‡αžΆβ€‹αž€αŸ†αž–αž»αž„β€‹αžŸαžšαžŸαŸαžšβ€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™β€‹αž˜αž½αž™β€‹αž€αŸ’αž“αž»αž„β€‹αž”αžΈβ€‹αž‡αŸ†αž αžΆαž“αŸ” αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ” αž˜αž·αž“αžŸαž”αŸ’αž”αžΆαž™αž…αž·αžαŸ’αžαŸ” αžαžΎαžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž”αžΆαž“αž›αžΏαž“αž‡αžΆαž„αž“αŸαŸ‡αž‘αŸ? αž’αžΆαž…!

αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαžŠαžΌαž…αž“αŸαŸ‡αžœαžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž αžΎαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αž›αŸ†αž αžΌαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαŸ” αžœαžΆαž”αŸ’αžšαŸ‚αžαžΆαž™αžΎαž„αž˜αžΆαž“αž€αŸ†αž αž»αžŸαžŸαŸ†αžŽαžΎαž‚αŸ†αžšαžΌαž€αžΆαžšαž‘αž”αŸ‹αžŸαŸ’αž€αžΆαžαŸ‹ ... αž€αžΆαžšαž αŸ„αŸ‡αž αžΎαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αžŸαŸ‚αžŸαŸ’αžšαž‘αžΆαž™αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ - αž αžΎαž™αž™αžΎαž„αžŸαžšαžŸαŸαžšαžœαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŸαŸ’αžšαž”αž‚αŸ’αž“αžΆαŸ” αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαžΏαž„αž“αŸαŸ‡ αžšαž€αŸ’αžŸαžΆαž†αžΆαž“αŸ‚αž› COPY αž”αžΎαž€αž‡αžΆαž“αž·αž…αŸ’αž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαžΆαžšαžΆαž„αž‚αŸ„αž›αžŠαŸ…αž“αžΈαž˜αž½αž™αŸ—.

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž“αŸ„αŸ‡αž‚αžΊαž“αŸ…αž―αž’αŸ’αž“αž€αž”αŸ’αžšαž˜αžΌαž› αžœαžΆαžαŸ‚αž„αžαŸ‚αž˜αžΆαž“αž…αžšαž“αŸ’αžαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž’αžΆαž…αžŸαžšαžŸαŸαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αž˜αžΎαž›αžƒαžΎαž‰αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸαŸ‡αž αžΎαž™αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž˜αž·αž“αž‡αžΆαž”αŸ‹αž‚αžΆαŸ†αž„αžšαž„αŸ‹αž…αžΆαŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžš, αž€αžΆαžšαž…αž˜αŸ’αž›αž„αžαŸ’αžšαžΌαžœαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαŸ†αžαžΆαž“αž“αŸ…αž…αž“αŸ’αž›αŸ„αŸ‡αž–αŸαž›αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹. αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„ αžšαž™αŸˆαž–αŸαž›αžŠαŸ‚αž›αž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž”αŸ†αž•αž»αžαž‚αžΊαž”αŸ’αžšαž αŸ‚αž› 100ms - αž™αžΎαž„αž”αž·αž‘αžœαžΆ αž αžΎαž™αž”αžΎαž€αžœαžΆαž˜αŸ’αžαž„αž‘αŸ€αžαž—αŸ’αž›αžΆαž˜αŸ—αž‘αŸ…αž€αžΆαž“αŸ‹αžαžΆαžšαžΆαž„αžŠαžŠαŸ‚αž›αŸ” αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αž˜αž·αž“αž˜αžΆαž“αž›αŸ†αž αžΌαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž€αŸ’αž“αž»αž„αž€αŸ†αž‘αž»αž„αž–αŸαž›αž€αŸ†αž–αžΌαž›αžαŸ’αž›αŸ‡αž‘αŸ αž“αŸ„αŸ‡αž™αžΎαž„αž“αžΉαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αžšαž αžΌαžαžŠαž›αŸ‹αžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αŸ”

αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αž™αžΎαž„αž”αžΆαž“αžšαž€αžƒαžΎαž‰αžαžΆ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αž˜αŸ’αžšαž„αŸ‹αž•αŸ’αž‘αž»αž€αž”αŸ‚αž”αž“αŸαŸ‡ αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αžŽαžΆαž˜αž½αž™ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›αž‡αžΆαž”αžΆαž…αŸ‹ αž‚αžΊαž’αžΆαž€αŸ’αžšαž€αŸ‹αŸ” αž’αžΆαž€αŸ’αžšαž€αŸ‹αž”αž»αžšαžΆαžŽαž‚αžΊ INSERT ... VALUES αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆ 1000 αž‘αŸ€αžαŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž“αŸ…αž…αŸ†αžŽαž»αž…αž“αŸ„αŸ‡ αž’αŸ’αž“αž€αž˜αžΆαž“αž€αž˜αŸ’αžšαž·αžαž“αŸƒαž€αžΆαžšαžŸαžšαžŸαŸαžšαž“αŸ…αž›αžΎαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™ αž αžΎαž™αž’αŸ’αž“αž€αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž–αŸ’αž™αžΆαž™αžΆαž˜αžŸαžšαžŸαŸαžšαž’αŸ’αžœαžΈαž˜αž½αž™αž‘αŸ…αž€αŸ’αž“αž»αž„αžαžΆαžŸαž“αžΉαž„αžαŸ’αžšαžΌαžœαžšαž„αŸ‹αž…αžΆαŸ†αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž€αž˜αŸ’αž…αžΆαžαŸ‹β€‹αž—αžΆαž–β€‹αž˜αž·αž“β€‹αž”αŸ’αžšαž€αŸ’αžšαžαžΈβ€‹αž”αŸ‚αž”β€‹αž“αŸαŸ‡ αž’αŸ’αž“αž€β€‹αž˜αž·αž“β€‹αžαŸ’αžšαžΌαžœβ€‹αžšαž½αž˜β€‹αž”αž‰αŸ’αž…αžΌαž›β€‹αž’αŸ’αžœαžΈβ€‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž€αž»αŸ†αž”αžŽαŸ’αžαŸ‚αžαž”αžŽαŸ’αžαŸ„αž™. αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž€αžΆαžšαž”αžŽαŸ’αžŠαŸ„αŸ‡αž’αžΆαžŸαž“αŸ’αž“αž‘αŸ…αžαžΆαžŸαž€αžΎαžαž‘αžΎαž„ (αž‡αžΆαžŸαŸ†αžŽαžΆαž„αž›αŸ’αž’ Stream API αž“αŸ…αž€αŸ’αž“αž»αž„ Node.js αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŸαŸ’αžœαŸ‚αž„αžšαž€) - αž–αž“αŸ’αž™αžΆαžšαž–αŸαž›αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž“αŸαŸ‡αŸ” αž“αŸ…αž–αŸαž›αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž”αžΆαž“αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αžœαžΆαž₯αžαž‚αž·αžαžαŸ’αž›αŸƒαž˜αŸ’αžαž„αž‘αŸ€αž αžŸαžΌαž˜αžŸαžšαžŸαŸαžšαž‘αŸ…αžœαžΆαž–αžΈαž‡αž½αžšαžŠαŸ‚αž›αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αŸ” αž αžΎαž™αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αžœαžΆαžšαžœαž›αŸ‹ αžŸαžΌαž˜αž™αž€αž˜αž½αž™αž‘αŸ†αž“αŸαžšαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž…αŸαž‰αž–αžΈαž’αžΆαž„ αž αžΎαž™αžŸαžšαžŸαŸαžšαž‘αŸ…αžœαžΆαŸ”

αž˜αž»αž“αž–αŸαž›αžŽαŸ‚αž“αžΆαŸ†αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž€αžαŸ‹αžαŸ’αžšαžΆαž‘αž·αž“αŸ’αž“αž“αŸαž™ αž™αžΎαž„αž˜αžΆαž“αž”αŸ’αžšαž˜αžΆαžŽ 4K write ops αž αžΎαž™αžαžΆαž˜αžœαž·αž’αžΈαž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž•αŸ’αž‘αž»αž€ 4 αžŠαž„αŸ” αž₯αž‘αžΌαžœαž“αŸαŸ‡αž–αž½αž€αž‚αŸαž”αžΆαž“αžšαžΈαž€αž…αž˜αŸ’αžšαžΎαž“ 6 αžŠαž„αž‘αŸ€αžαžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αž”αžΆαž“αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžαŸ’αž˜αžΈ - αžšαž αžΌαžαžŠαž›αŸ‹ 100MB/s αŸ” αž αžΎαž™αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž™αŸˆαž–αŸαž› 3 αžαŸ‚αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž€αŸ’αž“αž»αž„αž”αžšαž·αž˜αžΆαžŽαž”αŸ’αžšαž αŸ‚αž› 10-15TB αžŠαŸ„αž™αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αžαŸ’αžšαžΉαž˜αžαŸ‚ XNUMX αžαŸ‚αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŽαžΆαž˜αž½αž™αž“αžΉαž„αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžŽαžΆαž˜αž½αž™αŸ”

αž™αžΎαž„αž™αž›αŸ‹αž–αžΈαž”αž‰αŸ’αž αžΆ

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αž‚αžΊαž›αŸ’αž’ αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸ αž–αžΆαž€αŸ‹αž–αŸαž“αŸ’αž’ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž‘αŸ - αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž™αž›αŸ‹αŸ” αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž•αŸ‚αž“αž€αžΆαžšαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαžšαžΆαž”αŸ‹αž›αžΆαž“αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒαŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž˜αž“αž»αžŸαŸ’αžŸβ€‹αžšαžΆαž”αŸ‹αž›αžΆαž“β€‹αž“αžΆαž€αŸ‹β€‹αž‚αžΊβ€‹αž˜αž·αž“αž’αžΆαž…β€‹αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„β€‹αž”αžΆαž“β€‹αž‘αŸ αžŠαŸ†αž”αžΌαž„β€‹αž™αžΎαž„β€‹αžαŸ’αžšαžΌαžœαžαŸ‚β€‹αž’αŸ’αžœαžΎ β€œβ€‹αžαžΌαž…β€‹αž‡αžΆαž„β€‹αž“αŸαŸ‡β€‹β€β€‹αŸ” αž αžΎαž™αž‡αžΆαžŠαŸ†αž”αžΌαž„ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž’αŸ’αž“αž€αž“αžΉαž„αžšαŸ€αž”αž…αŸ†αžšαžΏαž„ "αžαžΌαž…αž‡αžΆαž„" αž“αŸαŸ‡αŸ”

αž™αžΎαž„αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαž»αž…αžŸαŸ†αžαžΆαž“αŸ‹αž…αŸ†αž“αž½αž“αž”αžΈαŸ–

  • αž“αžšαžŽαžΆ αž”αžΆαž“αž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎαž“αŸαŸ‡αŸ”
    αž“αŸ„αŸ‡αž‚αžΊαž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžœαžΆαž”αžΆαž“ "αž˜αž€αžŠαž›αŸ‹"αŸ– αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž‚αŸαž αž‘αŸ†αž–αŸαžš αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž™ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΌαž‘αžΆαžαŸ‹ αž¬αž’αŸ’αžœαžΈαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”
  • αžŠαŸ‚αž›αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž› αžœαžΆβ€‹αž”αžΆαž“β€‹αž€αžΎαžαž‘αžΎαž„
    αž“αŸ…αž›αžΎ server αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αžŽαžΆ? αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™ αž αžΎαž™αž—αŸ’αž›αžΆαž˜αŸ—αž“αŸ„αŸ‡αž˜αž½αž™ "αž†αŸ’αž€αž½αž" (αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚ "αžαžΆαžŸαžšαž›αž½αž™" "αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αž›αŸαž…αž’αŸ’αž›αžΆαž™" αž”αž‰αŸ’αž αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αž) αž“αŸ„αŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαž–αž·αžŸαŸαžŸαž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”
  • αžšαž”αŸ€αž” αž”αž‰αŸ’αž αžΆαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαŸ’αž›αž½αž“αžœαžΆαžαžΆαž˜αž˜αž’αŸ’αž™αŸ„αž”αžΆαž™αž˜αž½αž™αž¬αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž™αž›αŸ‹αž–αžΈ "αž’αŸ’αž“αž€αžŽαžΆ" αž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎαž˜αž€αž™αžΎαž„ αž™αžΎαž„αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš - αž€αŸ†αžŽαžαŸ‹αž’αžαŸαžšαžŸαž˜αŸαž™αž˜αž½αž™αŸ– SET application_name = '{bl-host}:{bl-method}'; - αž™αžΎαž„αž•αŸ’αž‰αžΎαžˆαŸ’αž˜αŸ„αŸ‡αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αžŸαŸ†αžŽαžΎαž“αžΉαž„αž˜αž€αžŠαž›αŸ‹ αž“αž·αž„αžˆαŸ’αž˜αŸ„αŸ‡αž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš αž¬αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž•αŸ’αžαž½αž…αž•αŸ’αžαžΎαž˜αžœαžΆαŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž™αžΎαž„αž”αžΆαž“αž†αŸ’αž›αž„αž€αžΆαžαŸ‹ "αž˜αŸ’αž…αžΆαžŸαŸ‹" αž“αŸƒαžŸαŸ†αžŽαžΎαž“αŸ„αŸ‡ αžœαžΆαžαŸ’αžšαžΌαžœαžαŸ‚αž…αŸαž‰αž‘αŸ…αž€αžΆαž“αŸ‹αž€αŸ†αžŽαžαŸ‹αž αŸαžαž» - αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž“αŸαŸ‡ αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αžαŸαžš log_line_prefix = ' %m [%p:%v] [%d] %r %a'. αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž”αŸ’αžšαž αŸ‚αž›αž‡αžΆ αžšαž€αž˜αžΎαž›αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ€αžœαž—αŸ…αžŽαŸ‚αž“αžΆαŸ†αžαžΎαžœαžΆαž˜αžΆαž“αž“αŸαž™αž™αŸ‰αžΆαž„αžŽαžΆαŸ” αžœαžΆαž”αŸ’αžšαŸ‚αžαžΆαž™αžΎαž„αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αŸ–

  • врСмя
  • αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš
  • αžˆαŸ’αž˜αŸ„αŸ‡αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™
  • IP αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎαž“αŸαŸ‡αŸ”
  • αž“αž·αž„αžˆαŸ’αž˜αŸ„αŸ‡αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž™αžΎαž„αž”αžΆαž“αžŠαžΉαž„αžαžΆαžœαžΆαž˜αž·αž“αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαžαŸ’αž›αžΆαŸ†αž„αžŽαžΆαžŸαŸ‹αž€αŸ’αž“αž»αž„αž€αžΆαžšαž˜αžΎαž›αž€αžΆαžšαž‡αžΆαž”αŸ‹αž‘αžΆαž€αŸ‹αž‘αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸ†αžŽαžΎαž˜αž½αž™αžšαžœαžΆαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαŸ” αžœαžΆαž˜αž·αž“αž‰αžΉαž€αž‰αžΆαž”αŸ‹αž‘αŸαžŠαŸ‚αž›αž’αŸ’αž“αž€αž˜αžΆαž“αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž˜αž½αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ’αž˜αžΎαŸ—αž‚αŸ’αž“αžΆαž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž“αž·αž„αž‘αžΈαž“αŸ„αŸ‡αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαžœαžΆαžŠαžΌαž…αž‚αŸ’αž“αžΆαž€αŸαžŠαŸ„αž™ αžŸαžΌαž˜αž€αŸ’αžšαž‘αŸαž€αž˜αžΎαž›αž‚αŸ’αžšαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž€αžΆαžαŸ‹ "αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αž½αž™ - αž˜αž½αž™αžαŸ’αž„αŸƒ" αžœαžΆαž”αŸ’αžšαŸ‚αž‘αŸ…αž‡αžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž™αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαž·αž—αžΆαž‚αžŽαžΆαž˜αž½αž™αŸ”

αž•αŸ’αž“αŸ‚αž€αžœαž·αž—αžΆαž‚αžŠαŸ†αž”αžΌαž„αž‚αžΊαžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” "αž‚αŸ†αžšαžΌ" - αž‘αž˜αŸ’αžšαž„αŸ‹αžŸαž„αŸ’αžαŸαž”αž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž•αŸ‚αž“αž€αžΆαžš αž‡αž˜αŸ’αžšαŸ‡αžšαžΆαž›αŸ‹αžŸαžΌαž…αž“αžΆαž€αžšαž›αŸαžαŸ” αž€αžΆαžšαž€αžΆαžαŸ‹αž‘αžΈαž–αžΈαžšαž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž¬αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž αž αžΎαž™αž€αžΆαžšαž€αžΆαžαŸ‹αž‘αžΈαž”αžΈαž‚αžΊαž‡αžΆαžαŸ’αž“αžΆαŸ†αž„αž•αŸ‚αž“αž€αžΆαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž›αž±αŸ’αž™αž™αžΎαž„αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαŸ”

αž“αŸ…β€‹αž–αŸαž›β€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈβ€‹αž–αžΈβ€‹αž§αž‘αžΆαž αžšαžŽαŸβ€‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹β€‹αž‘αŸ…β€‹αž‚αŸ†αžšαžΌ αž™αžΎαž„β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸβ€‹αž–αžΈαžšβ€‹αž€αŸ’αž“αž»αž„β€‹αž–αŸαž›β€‹αžαŸ‚β€‹αž˜αž½αž™αŸ–

  • αž€αžΆαžšαž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ’αžšαžΎαž“αž“αŸƒαž…αŸ†αž“αž½αž“αžœαžαŸ’αžαž»αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαž·αž—αžΆαž‚
    αž™αžΎαž„αžαŸ’αžšαžΌαžœαžœαž·αž—αžΆαž‚αž”αž‰αŸ’αž αžΆ αž˜αž·αž“αž˜αŸ‚αž“αžŠαŸ„αž™αžŸαŸ†αžŽαž½αžš αž¬αž•αŸ‚αž“αž€αžΆαžšαžšαžΆαž”αŸ‹αž–αžΆαž“αŸ‹αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ„αž™αž‚αŸ†αžšαžΌαžšαžΆαž”αŸ‹αžŸαž·αž”αŸ”
  • αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αŸαž›αžœαŸαž›αžΆ
    αž“αŸ„αŸ‡αž‚αžΊαžŠαŸ„αž™αž€αžΆαžšαžŸαž„αŸ’αžαŸαž” "αž€αžΆαžšαž–αž·αž" αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž αžΆαž‰αžšαžΌαž”αžšαžΆαž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž“αŸ…αž–αŸαž›αžαŸ’αž„αŸƒαŸ” αž αžΎαž™αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž…αž™αž›αŸ‹αž”αžΆαž“αžαžΆαž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αžΆαž“αž‚αŸ†αžšαžΌαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž€αžΎαžαž‘αžΎαž„αž§αž‘αžΆαž αžšαžŽαŸ αž˜αŸ’αžαž„αž€αŸ’αž“αž»αž„αž˜αž½αž™αž˜αŸ‰αŸ„αž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž‚αž½αžšαžαŸ‚αž€αžΎαžαž‘αžΎαž„αž˜αŸ’αžαž„αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒ αž’αŸ’αž“αž€αž‚αž½αžšαžαŸ‚αž‚αž·αžαž’αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαž»αžŸ - αžαžΎαž’αŸ’αž“αž€αžŽαžΆαž‡αžΆαž’αŸ’αž“αž€αž”αž„αŸ’αž€ αž αžΎαž™αž αŸαžαž»αž’αŸ’αžœαžΈ αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαžœαžΆαž‚αž½αžšαžαŸ‚αž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ” αž˜αž·αž“αž‚αž½αžš αž“αŸαŸ‡αž‚αžΊαž‡αžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαž€αžΆαžšαžœαž·αž—αžΆαž‚αžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž›αŸαž αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαžŠαŸ‚αž›αž“αŸ…αžŸαŸαžŸαžŸαž›αŸ‹αž‚αžΊαž•αŸ’αž’αŸ‚αž€αž›αžΎαžŸαžΌαž…αž“αžΆαž€αžšαžŠαŸ‚αž›αž™αžΎαž„αžŸαŸ’αžšαž„αŸ‹αž…αŸαž‰αž–αžΈαž•αŸ‚αž“αž€αžΆαžšαŸ– αžαžΎαž‚αŸ†αžšαžΌαž”αŸ‚αž”αž“αŸαŸ‡αž€αžΎαžαž‘αžΎαž„αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αžŠαž„ αžŸαžšαž»αž” αž“αž·αž„αž˜αž’αŸ’αž™αž˜αž˜αŸ‰αŸ„αž„αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“ αž‘αž·αž“αŸ’αž“αž“αŸαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αž–αžΈαžαžΆαžŸ αž“αž·αž„αž…αŸ†αž“αž½αž“αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž–αžΈαž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†...

αž–αžΈαž–αŸ’αžšαŸ„αŸ‡ αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž’αŸ’αž“αž€αž˜αž€αž‘αŸ†αž–αŸαžšαžœαž·αž—αžΆαž‚αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ αž˜αžΎαž› - αž’αŸ’αžœαžΈαž˜αž½αž™αž€αŸ†αž–αž»αž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αžΆαž“αž…αŸ’αžšαžΎαž“αž–αŸαž€αž“αŸ…αž›αžΎαžαžΆαžŸαŸ” αžαžΆαžŸαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž˜αž·αž“αž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžœαžΆαž”αžΆαž“αž‘αŸ - αžαžΎαž’αŸ’αž“αž€αžŽαžΆαž’αžΆαž“αž–αžΈαžœαžΆ?

αž αžΎαž™β€‹αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αžαž˜αŸ’αžšαŸ€αž”β€‹αžαžΆαž˜β€‹αž‡αž½αžšβ€‹αžˆαžšβ€‹αžŽαžΆβ€‹αž˜αž½αž™ αž αžΎαž™β€‹αžŸαž˜αŸ’αžšαŸαž…β€‹αž…αž·αžαŸ’αžβ€‹αžαžΆβ€‹αžαžΎβ€‹αž’αŸ’αž“αž€β€‹αž“αžΉαž„β€‹αžŠαŸ„αŸ‡β€‹αžŸαŸ’αžšαžΆαž™β€‹αž’αŸ’αžœαžΈβ€‹αž₯αž‘αžΌαžœβ€‹αž“αŸαŸ‡ - αž”αž“αŸ’αž‘αž»αž€β€‹αž“αŸ…β€‹αž›αžΎ processor ឬ disk αž¬β€‹αž…αŸ†αž“αž½αž“β€‹αžŸαŸ†αžŽαžΎβ€‹αžŸαžšαž»αž”... αž™αžΎαž„β€‹αž”αžΆαž“β€‹αžαž˜αŸ’αžšαŸ€αž”β€‹αžœαžΆ αž€αŸ’αžšαž‘αŸαž€β€‹αž˜αžΎαž› "αž€αŸ†αž–αžΌαž›" αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž‡αž½αžŸαž‡αž»αž›β€‹αžœαžΆ αž αžΎαž™ αž”αžΆαž“αžŠαžΆαž€αŸ‹αž…αŸαž‰αž€αŸ†αžŽαŸ‚αžαŸ’αž˜αžΈαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”
[αžœαžΈαžŠαŸαž’αžΌαž”αž„αŸ’αžšαŸ€αž“]

αž αžΎαž™αž—αŸ’αž›αžΆαž˜αŸ—αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™αž‚αŸ†αžšαžΌαžŠαžΌαž…αž‚αŸ’αž“αžΆαž–αžΈαžŸαŸ†αžŽαžΎαžŠαžΌαž…αž‡αžΆ SELECT * FROM users WHERE login = 'Vasya'. Frontend, backend, processing... αž αžΎαž™αž’αŸ’αž“αž€αž†αŸ’αž„αž›αŸ‹αžαžΆαž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αžΉαž„αž’αžΆαž“αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž‚αžΆαžαŸ‹αž˜αž·αž“αž‘αžΆαž€αŸ‹αž‘αž„αž‡αžΆαž˜αž½αž™αž‚αžΆαžαŸ‹αŸ”

αžœαž·αž’αžΈαž•αŸ’αž‘αž»αž™αž‚αžΊαžαŸ’αžšαžΌαžœαž˜αžΎαž›αž—αŸ’αž›αžΆαž˜αŸ—αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαžαžΎαžœαžΆαž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αžαž‚αžΊαž“αŸαŸ‡ αž“αŸαŸ‡ αž“αŸαŸ‡ αž αžΎαž™αž“αŸαŸ‡αž˜αŸ’αžαž„αž€αŸ’αž“αž»αž„αž˜αž½αž™αž˜αŸ‰αŸ„αž„ (αž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αŸαž›αžœαŸαž›αžΆαž‡αž½αž™)αŸ” αž αžΎαž™αžŸαŸ†αžŽαž½αžšαž€αžΎαžαž‘αžΎαž„αž—αŸ’αž›αžΆαž˜αŸ—αŸ– αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹ Frontend αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž˜αž½αž™αž˜αŸ’αžαž„αž€αŸ’αž“αž»αž„αž˜αž½αž™αž˜αŸ‰αŸ„αž„...

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž˜αž½αž™αžšαž™αŸˆαž€αŸ’αžšαŸ„αž™αž˜αž€ αž™αžΎαž„αžŠαžΉαž„αžαžΆαž™αžΎαž„αžαŸ’αžœαŸ‡αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ† αžŸαŸ’αžαž·αžαž·αžαžΆαž˜αžαŸ’αž“αžΆαŸ†αž„αž•αŸ‚αž“αž€αžΆαžš. αž™αžΎαž„αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž–αžΈαž•αŸ‚αž“αž€αžΆαžšαžαŸ‚αžαŸ’αž“αžΆαŸ†αž„αž‘αžΆαŸ†αž„αž“αŸ„αŸ‡αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž’αŸ’αžœαžΈαž˜αž½αž™αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸƒαžαžΆαžšαžΆαž„αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ (αž’αžΆαž“/αžŸαžšαžŸαŸαžšαž–αž½αž€αžœαžΆαžαžΆαž˜αž›αž·αž”αž·αž€αŸ’αžšαž˜αž¬αž’αžαŸ‹)αŸ” αžαžΆαž˜αž–αž·αžαž‘αŸ… αž‘αž·αžŠαŸ’αž‹αž—αžΆαž–αžαŸ‚αž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αžΆαž€αŸ‹αž‘αž„αž‘αŸ…αž“αžΉαž„αžšαžΌαž”αž—αžΆαž–αž˜αž»αž“ - αžαžΎαžαŸ’αž“αžΆαŸ†αž„αž“αŸαŸ‡αž“αžΆαŸ†αž˜αž€αž™αžΎαž„αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆ?αž“αž·αž„αž…αŸ†αž“αž½αž“αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž”αŸ„αŸ‡αž…αŸ„αž› (αž‡αž½αžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰αžŠαŸ„αž™αžαž˜αŸ’αžšαž„)αŸ”

αž’αŸ’αž“αž€αž˜αž·αž“αž˜αžΆαž“αž›αž·αž”αž·αž€αŸ’αžšαž˜αžŸαž˜αžšαž˜αŸ’αž™αž“αŸ…αž›αžΎαž…αžΆαž“αž‘αŸ αž’αŸ’αž“αž€αž’αŸ’αžœαžΎαžŸαŸ†αžŽαžΎαž‘αŸ…αžœαžΆ αžœαžΆαž αŸ„αŸ‡αž€αžΆαžαŸ‹αžŸαž“αŸ’αž‘αžŸαŸ’αžŸαž“αŸ αž’αŸ’αž›αžΆαž€αŸ‹αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ Seq Scan... αž’αŸ’αž“αž€αž”αžΆαž“αžαŸ’αžšαž„αž…αŸαž‰αžšαžΆαž›αŸ‹αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž›αžΎαž€αž›αŸ‚αž„αžαŸ‚αž˜αž½αž™αŸ” αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαžŠαŸ‚αž›αž”αžΆαž“αžαŸ’αžšαž„ 100 αž›αžΆαž“αž€αŸ’αž“αž»αž„αž˜αž½αž™αžαŸ’αž„αŸƒ? αžαžΎαžœαžΆαž˜αž·αž“αž”αŸ’αžšαžŸαžΎαžšαž‡αžΆαž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αžŸαž“αŸ’αž‘αžŸαŸ’αžŸαž“αŸαž‘αŸ?

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αžŠαŸ„αž™αž”αžΆαž“αžœαž·αž—αžΆαž‚αžαŸ’αž“αžΆαŸ†αž„αž•αŸ‚αž“αž€αžΆαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ„αž™αžαŸ’αž“αžΆαŸ†αž„ αž™αžΎαž„αž”αžΆαž“αžŠαžΉαž„αžαžΆαž˜αžΆαž“αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αž˜αŸ’αž˜αžαžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ‚αž“αž€αžΆαžšαžŠαŸ‚αž›αž‘αŸ†αž“αž„αž‡αžΆαž˜αžΎαž›αž‘αŸ…αž‚αž½αžšαž±αŸ’αž™αžŸαž„αŸ’αžŸαŸαž™αŸ” αž αžΎαž™αžœαžΆαž‡αžΆαž€αžΆαžšαž›αŸ’αž’αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαžΆ "αž˜αž·αžαŸ’αžαž’αžΎαž™ αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž’αŸ’αž“αž€αž’αžΆαž“αžŠαŸ†αž”αžΌαž„αžŠαŸ„αž™αž›αž·αž”αž·αž€αŸ’αžšαž˜ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžαž˜αŸ’αžšαŸ€αž” αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž€αžΆαžαŸ‹αž…αŸαž‰" - αž‡αžΆαž€αŸ’αž”αž½αž“αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαž˜αž½αž™αŸ”

αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαžŸαŸ†αžŽαž½αžšαž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž”αžΆαž“αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž‚αŸ†αžšαžΌαž“αŸαŸ‡αŸ– "αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αžαŸ’αž‰αž»αŸ†αž“αžΌαžœαž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰αž…αž»αž„αž€αŸ’αžšαŸ„αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Vasya αžŠαŸ‚αž›αž‡αžΆαž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αžšαž”αžŸαŸ‹αžœαžΆαŸ” " αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž˜αžΆαž“αž›αž·αž”αž·αž€αŸ’αžšαž˜αžαžΆαž˜αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘ αž¬αž˜αž·αž“αž˜αžΆαž“αž€αžΆαž›αž”αžšαž·αž…αŸ’αž†αŸαž‘αž“αŸ…αž€αŸ’αž“αž»αž„αž›αž·αž”αž·αž€αŸ’αžšαž˜αžŠαŸ‚αž›αž’αŸ’αž“αž€αž”αžΆαž“αž”αŸ’αžšαžΎαž‘αŸαž“αŸ„αŸ‡ αž”αŸ„αŸ‡αž‡αŸ†αž αžΆαž“αž›αžΎ "αžαž»αž„αžšαž½αž…" αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”

αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αžŠαžΉαž„αžαžΆαž“αŸαŸ‡αž‚αžΊαž‡αžΆ "αžαž»αž„αžšαž½αž…" αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αŸαžαž»αž’αŸ’αžœαžΈαž˜αž·αž“αž”αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž—αŸ’αž›αžΆαž˜αŸ—αž’αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‚αžΆαžαŸ‹αž‚αž½αžšαž’αŸ’αžœαžΎαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž“αŸ…αž–αŸαž›αž”αžΎαž€αž•αŸ‚αž“αž€αžΆαžšαž₯αž‘αžΌαžœαž“αŸαŸ‡ αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžšαž”αžŸαŸ‹αž™αžΎαž„αžƒαžΎαž‰αžšαžΌαž”αž—αžΆαž–αžŠαŸαžŸαŸ’αžšαžŸαŸ‹αžŸαŸ’αž’αžΆαžαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‚αž“αŸ’αž›αžΉαŸ‡αž—αŸ’αž›αžΆαž˜αŸ— αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαž”αŸ’αžšαžΆαž”αŸ‹αž‚αžΆαžαŸ‹αž—αŸ’αž›αžΆαž˜αŸ—αžαžΆ β€œαž’αŸ’αž“αž€αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž“αŸ…αž‘αžΈαž“αŸαŸ‡ αž“αž·αž„αž‘αžΈαž“αŸ„αŸ‡ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαžΆαž˜αžœαž·αž’αžΈαž“αŸαŸ‡αž αžΎαž™β€αŸ”

αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αž”αžšαž·αž˜αžΆαžŽαž“αŸƒαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸ…αžŠαžΎαž˜αžŠαŸ†αž”αžΌαž„ αž“αž·αž„αž₯αž‘αžΌαžœαž“αŸαŸ‡αž”αžΆαž“αž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αŸ” αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αŸ’αžšαž—αŸαž‘αž§αž”αž€αžšαžŽαŸαžŠαŸ‚αž›αž™αžΎαž„αž˜αžΆαž“αŸ”

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž—αžΆαž‚αž…αŸ’αžšαžΎαž“αž“αŸƒαžŸαŸ†αžŽαž½αžš PostgreSQL αŸ” Kirill Borovikov (Tensor)

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹