
PHP рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдЯрд╛рд░реЗрдВрдЯреВрд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджреЛ рдХрдиреЗрдХреНрдЯрд░ рд╣реИрдВ: рдЖрдзрд┐рдХрд╛рд░рд┐рдХ PECL рдПрдХреНрд╕рдЯреЗрдВрд╢рди
рдЯрд╛рд░реЗрдВрдЯреВрд▓ / рдЯрд╛рд░реЗрдВрдЯреВрд▓-php, рдЬреЛ C рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░
tarantool-php / рдХреНрд▓рд╛рдЗрдВрдЯ PHP рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХрд╛ рд▓реЗрдЦрдХ рд╣реВрдВред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрди рджреЛрдиреЛрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдХреЛрдб рдореЗрдВ рдиреНрдпреВрдирддрдо рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде 3x-5x рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ (
рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░! ) рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдХреНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ?
рд╣рдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдЙрдкрд░реНрдпреБрдХреНрдд рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХрдиреЗрдХреНрдЯрд░реНрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдХрдиреЗрдХреНрдЯрд░реНрд╕ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдлрд┐рд▓рд╣рд╛рд▓ рдХрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдЬреЛ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- Swoole , PHP рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдврд╛рдВрдЪрд╛ред рдЗрдВрдЯрд░рдиреЗрдЯ рджрд┐рдЧреНрдЧрдЬреЛрдВ рдЬреИрд╕реЗ рдЕрд▓реАрдмрд╛рдмрд╛ рдФрд░ Baidu рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрд╕реНрдХрд░рдг реж.рез.реж рдХреЗ рдмрд╛рдж рд╕реЗ, рдЕрджреНрднреБрдд рд░рдирдЯрд╛рдЗрдо рд╣реБрдХ рд╕реНрд╡реЛрдПрд▓ \ рд░рдВрдЯрд╛рдЗрдо :: enableCoroutine () рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ "рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реНрдб PHP рдиреЗрдЯрд╡рд░реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЛ рдХреЛрдб рдХреА рд╕рд┐рдВрдЧрд▓ рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╣-рд░реВрдЯреАрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ"ред
- Async, рд╣рд╛рд▓ рд╣реА рддрдХ PHP рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрд╢рд╛рдЬрдирдХ рд╡рд┐рд╕реНрддрд╛рд░ред рд╣рд╛рд▓ рддрдХ рдХреНрдпреЛрдВ? рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЬрд┐рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рд▓реЗрдЦрдХ рдиреЗ рднрдВрдбрд╛рд░ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рднрд╡рд┐рд╖реНрдп рд╕рдВрджрд┐рдЧреНрдз рд╣реИред рдореИрдВ рдПрдХ рдХрд╛рдВрдЯреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рд╕реНрд╡реЛрдЗрд▓ рдХреА рддрд░рд╣, рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди PHP рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдЯреНрд░реАрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрдкрдиреЗ async рд╕рдордХрдХреНрд╖ рдХреЗ рд╕рд╛рде рдмрджрд▓рдХрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдХрд▓реНрдк " async.tcp = 1 " рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд╕рдорд╛рдирд╛рдВрддрд░ , рдЬрд╛рдиреЗ-рдорд╛рдиреЗ рдЬреЛ рд╡рд╛рдЯрдХрд┐рдВрд╕ рд╕реЗ рдПрдХ рдмрд╣реБрдд рд╣реА рдирдпрд╛ рд╡рд┐рд╕реНрддрд╛рд░, phpdbg, apcu, pthreads, pcov, uopz рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓реЗрдЦрдХред рд╡рд┐рд╕реНрддрд╛рд░ PHP рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБ-рд╕реВрддреНрд░рдг рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ pthreads рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реАрдорд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ PHP рдХреЗ ZTS (Zend Thread Safe) рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рд╣рдо рд░рд╛рдЗрдЯ-
рдлреЙрд░ рд▓реЙрдЧрд┐рдВрдЧ рдбрд┐рд╕реЗрдмрд▓ (
рд╡рд╛рд▓_рдореЛрдб = рдХреЛрдИ рдирд╣реАрдВ ) рдФрд░ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдмрдлрд░ (
рд░реАрдбрд╣реЗрдб = 1 * 1024 * 1024 ) рдХреЗ рд╕рд╛рде рдПрдХ рдЯрд╛рд░реЗрдВрдЯреВрд▓ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдЪрд▓рд╛рдПрдВрдЧреЗред рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдбрд┐рд╕реНрдХ рдбреНрд░рд╛рдЗрд╡ рдореЗрдВ IO рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛, рджреВрд╕рд░рд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмрдлрд░ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдз рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░ рджреЗрдЧрд╛ред
рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЬреЛ рдбреЗрдЯрд╛ (рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐, рд╡рд┐рд▓реЛрдкрди, рд░реАрдбрд┐рдВрдЧ, рдЖрджрд┐) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдореЗрдореНрдЯреИрдХреНрд╕ рд╕реНрдкреЗрд╕ (рдкреБрдирдГ-) рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЗрд╕ рд╕реНрдкреЗрд╕ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрддреА рдЗрдВрдбреЗрдХреНрд╕ рд╡реИрд▓реНрдпреВ рд╕реАрдХреНрд╡реЗрдВрд╕ рдЬрдирд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред
рдЕрдВрддрд░рд┐рдХреНрд╖ рдХрд╛ рдбреАрдбреАрдПрд▓ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
space = box.schema.space.create(config.space_name, { id = config.space_id, temporary = true }) space:create_index('primary', { type = 'tree', parts = {1, 'unsigned'}, sequence = true }) space:format({ {name = 'id', type = 'unsigned'}, {name = 'name', type = 'string', is_nullable = false} })
рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реНрдкреЗрд╕ рдирд┐рдореНрди рдлреЙрд░реНрдо рдХреЗ 10,000 рдЯреНрдпреВрдкрд▓реНрд╕ рд╕реЗ рднрд░рд╛ рд╣реИ:
{id, 'tuple_' .. id}
рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреБрдВрдЬреА рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреБрдкрд▓реНрд╕ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЙрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рдЕрдиреБрд░реЛрдз рд╣реИ рдЬрд┐рд╕реЗ 10,000 рдмрд╛рд░ (рдХреНрд░рд╛рдВрддрд┐рдпреЛрдВ) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рддрдм рддрдХ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ 5 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рдЪрд▓рди 3% рддреНрд░реБрдЯрд┐ рдорд╛рд░реНрдЬрд┐рди * рдХреЗ рднреАрддрд░ рди рд╣реЛред рдЙрд╕рдХреЗ рдмрд╛рдж, рдФрд╕рдд рдкрд░рд┐рдгрд╛рдо рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ, рд╕реАрдкреАрдпреВ рдХреЛ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП 1 рд╕реЗрдХрдВрдб рдХрд╛ рдард╣рд░рд╛рд╡ рд╣реИред Lua рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдХреНрд╖рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред PHP рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЗрд╡рд▓ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдмрдлрд╝рд░рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдФрд░ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдЕрдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред
* рдХреНрд░рд╛рдВрддрд┐рдпреЛрдВ, рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдФрд░ рддреНрд░реБрдЯрд┐ рд╕реАрдорд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ
рдиреАрдЪреЗ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо MacBookPro (рдордзреНрдп 2015) рдкрд░ Fedora 30 (рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 5.3.8-200.fc30.x86_64) рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЧрдП рдереЗред рдЯрд╛рд░рдирдЯреВрд▓ рдХреЛ "
--network рд╣реЛрд╕реНрдЯ " рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдбреЙрдХ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкреИрдХреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг:рдЯрд╛рд░рдирдЯреВрд▓: 2.3.0-115-g5ba5ed37e
рдбреЙрдХрд░: 03/19/3, a872fc2f86 рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ
PHP: 7.3.11 (cli) (рдирд┐рд░реНрдорд┐рдд: 22 рдЕрдХреНрдЯреВрдмрд░ 2019 08:11:04)
рдЯреИрд░рдирдЯреВрд▓ / рдЧреНрд░рд╛рд╣рдХ: 0.6.0
rybakit / msgpack: 0.6.1
рдкреВрд░реНрд╡-рдЯрд╛рд░реЗрдВрдЯреВрд▓: 0.3.2 (рдкреИрдЪ) *
ext-msgpack: 2.0.3
ext-async: 0.3.0-8c1da46
ext-swoole: 4.4.12
ext-рд╕рдорд╛рдирд╛рдВрддрд░: 1.1.3
* рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХрдиреЗрдХреНрдЯрд░ PHP> 7.2 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред PHP 7.3 рдкрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдПрдХ рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛редрдкрд░рд┐рдгрд╛рдо
рд╕рд┐рдВрдХ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ)
рдЯреИрд░реЗрдВрдЯреВрд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрд╕реЗрдЬрдкреИрдХ рдмрд╛рдЗрдирд░реА рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред PECL рдХрдиреЗрдХреНрдЯрд░ рдореЗрдВ, рдХреНрд░рдорд╛рдВрдХрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЕрдВрджрд░ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рд╕реЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд
рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ ред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╢реБрджреНрдз PHP рдХрдиреЗрдХреНрдЯрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рддреЛ рдорд╛рдирдХ рдПрдиреНрдХреЛрдбрд░ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдХреЗ, рдпрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред рджреЛ рдПрдирдХреЛрдбрд░ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ: рдПрдХ
msgpack / msgpack-php (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ MessagePack PECL рдПрдХреНрд╕рдЯреЗрдВрд╢рди) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рдПрдХ
rybakit / msgpack (рд╢реБрджреНрдз PHP) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдХрдиреЗрдХреНрдЯрд░реНрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВ, рдЖрдЗрдП PHP рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП MessagePack рдПрдиреНрдХреЛрдбрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдорд╛рдкреЗрдВ, рддрд╛рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЖрдЧреЗ рдХреЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рджрд░реНрд╢рдирдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
рд╣рд╛рд▓рд╛рдБрдХрд┐, PHP рд╕рдВрд╕реНрдХрд░рдг (рд╢реБрджреНрдз) PECL рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЬрд┐рддрдирд╛ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ рднреА рдореИрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ
rybakit / msgpack рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣
рджреВрдВрдЧрд╛ , рдХреНрдпреЛрдВрдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ PECL рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗрд╡рд▓ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ MessagePack рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ,) рдФрд░ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдЖрдк рджрд╢рдорд▓рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ - рдЯрд╛рд░реЗрдВрдЯреВрд▓ 2.3 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдирдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░) рдФрд░ рдЗрд╕рдореЗрдВ рдХрдИ рдЕрдиреНрдп
рдореБрджреНрджреЗ (PHP 7.4 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдореБрджреНрджреЗ рд╕рд╣рд┐рдд) рд╣реИрдВред рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд░рд┐рддреНрдпрдХреНрдд рджрд┐рдЦрддреА рд╣реИред
рддреЛ, рдЪрд▓реЛ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдореЛрдб рдореЗрдВ рдХрдиреЗрдХреНрдЯрд░реНрд╕ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдорд╛рдкрддреЗ рд╣реИрдВ:
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЧреНрд░рд╛рдл рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, PECL рдХрдиреЗрдХреНрдЯрд░ (рдЯрд╛рд░реЗрдВрдЯреВрд▓) PHP рдХрдиреЗрдХреНрдЯрд░ (рдХреНрд▓рд╛рдЗрдВрдЯ) рд╕реЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдмрд╛рдж рдореЗрдВ, рдзреАрдореА рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд╣рд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛
рдЕрдиреБрд░реЛрдз рдФрд░
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЪрдпрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА
рдорд╛рдирджрдВрдб рд╣реИ , рдФрд░ рдЕрдкрдбреЗрдЯ / рдЕрдкрдЧреНрд░реЗрдб рдХрд╛
рд╕рдВрдЪрд╛рд▓рди рд╣реЛрддрд╛ рд╣реИ ),
рдХрдиреЗрдХреНрд╢рди ,
рдкреИрдХрд░ рдФрд░
рд╣реИрдВрдбрд▓рд░ рднреА рдХреБрдЫ рдУрд╡рд░рд╣реЗрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рдХрд╣рдирд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЙрдЪреНрдЪ рд▓рдЪреАрд▓рд╛рдкрди рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, PHP рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рджрд┐рдЦрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдЕрдВрддрд░ рд╣реИ, рдпрд╣ рдорд╣рддреНрд╡рд╣реАрди рд╣реИ рдФрд░ PHP 7.4 рдореЗрдВ рдкреНрд░реА-рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, PHP 8 рдореЗрдВ JIT рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЕрднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИред рдЯрд╛рд░реЗрдВрдЯреВрд▓ 2.0 рдиреЗ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рдкреЛрд░реНрдЯ рдкреЗрд╢ рдХрд┐рдпрд╛ред рдЖрдЗрдП SQL рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдкрд░реЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ, рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдФрд░ рд╣рдЯрд╛рдПрдВ рдФрд░ noSQL (рдмрд╛рдЗрдирд░реА) рд╕рдордХрдХреНрд╖реЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:

SQL рдкрд░рд┐рдгрд╛рдо рдЙрд╕ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реИрдВ (рдореБрдЭреЗ рдпрд╛рдж рджрд┐рд▓рд╛рдПрдВ рдХрд┐ рд╣рдо рдЕрднреА рднреА рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдореЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛: рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рдорд░реНрдерди рдЕрднреА рднреА рд╕рдХреНрд░рд┐рдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрд╣рдд рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рддреИрдпрд╛рд░ рдмрдпрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ) рдФрд░,
рдореБрджреНрджреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрд╕рдХреНрдпреВрдПрд▓ рдЗрдВрдЬрди рдХрд░реЗрдЧрд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрдИ рдЕрдиреБрдХреВрд▓рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
async
рдареАрдХ рд╣реИ, рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдореЗрдВ Async рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреИрд╕реЗ рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдПрдХ рдХреЛрд░рдЖрдЙрдЯ-рдЖрдзрд╛рд░рд┐рдд рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрд░рдЯрд╛рдЗрди рдХреА рдЗрд╖реНрдЯрддрдо рд╕рдВрдЦреНрдпрд╛ 25 рд╣реИ:

рдлрд┐рд░ рд╣рдордиреЗ 25 рдХреЙрд░рдЖрдЙрдЯреНрд╕ рдореЗрдВ 10,000 рдСрдкрд░реЗрд╢рди рдлреИрд▓рд╛рдП рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдБрдЪ рдХреА:
PHP рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ 3 рдЧреБрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рдЧрдИ рд╣реИ! рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ PECL рдХрдиреЗрдХреНрдЯрд░ рдПрдХреНрд╕-рдПрд╕рд┐рдВрдХреНрд╕ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред
рдФрд░ SQL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдореЛрдб рдореЗрдВ рдмрд╛рдЗрдирд░реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рд░реНрдЬрд┐рди рдХреЗ рднреАрддрд░ рдЖрддрд╛ рд╣реИред
Swoole
рдлрд┐рд░, рдЖрдЗрдП, рдЗрд╕ рдмрд╛рд░ рд╕реНрд╡реЛрдЗрд▓ рдХреЗ рд▓рд┐рдП, рдХреЙрд░рдЖрдЙрдЯреНрд╕ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:
рдЖрдЗрдП 25 рд▓реЗрддреЗ рд╣реИрдВред рдЕрдм, Async рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдЪрд╛рд▓ рдХреЛ рджреЛрд╣рд░рд╛рддреЗ рд╣реБрдП: 25 рдХреЛрд░рдЖрдЙрдЯ рдХреЗ рдмреАрдЪ 10,000 рдСрдкрд░реЗрд╢рди рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪрд▓реЛ рдПрдХ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╣рдо рдкреВрд░реА рдЪреАрдЬ рдХреЛ рджреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛рдиреА рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ 25 рдХреЛрд░рдЯрд╛рдЗрдиреНрд╕ рдореЗрдВ 5,000 рдСрдкрд░реЗрд╢рди рдХрд░реЗрдЧреА)ред
Swoole \ Process рдХреА рдорджрдж рд╕реЗ
рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрдирд╛рдИ
рдЬрд╛рдПрдВрдЧреА ред
рдкрд░рд┐рдгрд╛рдо:
рд╕реНрд╡реЛрдЗрд▓ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЪрд▓рдиреЗ рдкрд░ Async рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдХрдо рдкреНрд░рджрд░реНрд╢рди рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 2 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рддрд╕реНрд╡реАрд░ рдореЗрдВ рдХрд╛рдлреА рдмрджрд▓рд╛рд╡ рд╣реЛрддрд╛ рд╣реИ (2 рдХреЛ рджреБрд░реНрдШрдЯрдирд╛ рд╕реЗ рдирд╣реАрдВ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореЗрд░реА рдорд╢реАрди рдкрд░ рдЗрд╕ рд╕рдЯреАрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдиреЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рдпрд╛)ред
рд╡реИрд╕реЗ, Async рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдпрд╛ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рджреЗрдЦрд╛ (рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рдЧрд▓рддрд┐рдпрд╛рдВ рдХреА рд╣реИрдВ)ред
рдПрд╕рдХреНрдпреВрдПрд▓ рдмрдирд╛рдо рдмрд╛рдЗрдирд░реА рдкреНрд░реЛрдЯреЛрдХреЙрд▓:
Async рдХреЗ рд╕рд╛рде, рдмрд╛рдЗрдирд░реА рдФрд░ SQL рдСрдкрд░реЗрд╢рди рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдореЗрдВ рд╕рдорддрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдорд╛рдирд╛рдВрддрд░
рдЪреВрдВрдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдереНрд░реЗрдбреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рдХреЛрд░рдЯрд╛рдЗрди рдирд╣реАрдВ, рд╣рдо рд╕рдорд╛рдирд╛рдВрддрд░ рдереНрд░реЗрдбреНрд╕ рдХреА рдЗрд╖реНрдЯрддрдо рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВ:
рдпрд╣ рдореЗрд░реА рдорд╢реАрди рдкрд░ 16 рд╣реИред рдЕрдм 16 рд╕рдорд╛рдирд╛рдВрддрд░ рдереНрд░реЗрдбреНрд╕ рдкрд░ рдХрдиреЗрдХреНрдЯрд░реНрд╕ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд░рддреЗ рд╣реИрдВ:

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдо рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди (2 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реНрд╡реЛрд▓ рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдХреЗ рд╕рд╛рде рднреА рдмреЗрд╣рддрд░ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ PECL рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП, рдЕрдкрдбреЗрдЯ рдФрд░ рдЕрдкрдЧреНрд░реЗрдб рдСрдкрд░реЗрд╢рди рдХрд╛ рдХреЛрдИ рдмрд╛рд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЙрди рдСрдкрд░реЗрд╢рди рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдП, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рджреЛрд╖ рджреЗрдирд╛ рд╣реИ: ext-рд╕рдорд╛рдирд╛рдВрддрд░, рдпрд╛ ext-tarantool, рдпрд╛ рджреЛрдиреЛрдВред
рдЕрдм рддреБрд▓рдирд╛ рдореЗрдВ SQL рдкреНрд░рджрд░реНрд╢рди рдЬреЛрдбрд╝реЗрдВ:
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрдиреЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдл рдореЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдиреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ?
рд╕рднреА рдПрдХ рдореЗрдВ
рдЕрдВрдд рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рддрд╣рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд╕реНрд╡реАрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд░рд╛рдл рдореЗрдВ рд╕рднреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдорд┐рд▓рд╛рдПрдВред рд╣рдо рдЧреНрд░рд╛рдл рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдирдпрд╛ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рд╣рдордиреЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ: рд╕рдорд╛рдирд╛рдВрддрд░ * рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ Async coroutines рд▓реЙрдиреНрдЪ рдХрд░реЗрдВред рдЙрдкрд░реЛрдХреНрдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдкрд╣рд▓реЗ рд╣реА рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛
рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рдЪреБрдХреА рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрдИ рд╕рд╣рдорддрд┐ рдирд╣реАрдВ рдмрди рдкрд╛рдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
* рдореИрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдХреЗ рд╕рд╛рде рд╕реНрд╡реЛрдЗрд▓ рдХреЛрд░рдЯрд╛рдЗрдиреНрд╕ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛; рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЕрд╕рдВрдЧрдд рд╣реИрдВредрдЕрдм, рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо:
рдирд┐рд╖реНрдХрд░реНрд╖
рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо рдХрд╛рдлреА рд╕рднреНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрднреА рддрдХ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реИрдВ! рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЖрдкрдХреЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рд▓реЙрдиреНрдЪ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдХреЛрдб рдПрдХ рд╕рдорд░реНрдкрд┐рдд
рднрдВрдбрд╛рд░ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рдЖрдкрдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рдирд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдореИрдВ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд░реЛрдорд╛рдВрдЪрдХ рдкреНрд░рдпреЛрдЧ рдерд╛ рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдХрд┐ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдПрдХ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЯреАрд╕реАрдкреА-рдХрдиреЗрдХреНрдЯрд░ рд╕реЗ рдХрд┐рддрдирд╛ рдмрд╛рд╣рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред