рдЯреАрдкреАрд╕реА-рд╕реА рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди рдУрдЖрд░рдПрдо рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг

рдЬрдм рдкрд╛рдпрдерди рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯ-рд░рд┐рд▓реЗрд╢рдирд▓ рдореИрдкрд░ (ORM) рдЕрдХреНрд╕рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ORM рдХреЗ рдЙрджрд╛рд╣рд░рдг SQLALchemy, PonyORM, рдФрд░ Django рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ-рд░рд┐рд▓реЗрд╢рдирд▓ рдореИрдкрд░ рд╣реИрдВред рдУрдЖрд░рдПрдо рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╕рдордп, рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИред


рд╣реИрдмрд░, рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ, рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдПрдХ рдЧреБрдгрд╡рддреНрддрд╛ рдЕрдЬрдЧрд░ ORM рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдХрдЫреБрдЖ ORM рдмреЗрдВрдЪрдорд╛рд░реНрдХ ( рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓рд┐рдВрдХ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред рдпрд╣ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЧреНрдпрд╛рд░рд╣ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЫрд╣ рдУрдЖрд░рдПрдо рдХреА рдЧрддрд┐ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИред


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрдЫреБрдЖ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╡рд┐рднрд┐рдиреНрди рдУрдЖрд░рдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред ORM рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕реА рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд ORM рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рднреА рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд▓рд┐рдЦрдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдкреЛрдиреАрдореЛрд░ рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓рдЪреЗрдореА рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдПрдХ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЯреАрдкреАрд╕реА-рд╕реА рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд▓рд┐рдпрд╛ред


1988 рдХреЗ рдмрд╛рдж рд╕реЗ рдХрдВрдкрдиреА TPC , рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреА рд╣реИред рд╡реЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдХ рдЙрджреНрдпреЛрдЧ рдорд╛рдирдХ рдмрди рдЧрдП рд╣реИрдВ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдирдореВрдиреЛрдВ рдкрд░ рд▓рдЧрднрдЧ рд╕рднреА рд╡рд┐рдХреНрд░реЗрддрд╛рдУрдВ рдХреЗ рдЙрдкрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрдерд╛рд╕рдВрднрд╡ рдирд┐рдХрдЯ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рднрд╛рд░реА рднрд╛рд░ рдХреЗ рддрд╣рдд рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╣реИред


рдЯреАрдкреАрд╕реА-рд╕реА рдПрдХ рдЧреЛрджрд╛рдо рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдФрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдПрдХ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдкрд╛рдВрдЪ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рдиреМ рдЯреЗрдмрд▓ рд╣реЛрддреЗ рд╣реИрдВред рдЯреАрдкреАрд╕реА-рд╕реА рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рддрд┐ рдорд┐рдирдЯ рд▓реЗрдирджреЗрди рдореЗрдВ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдореИрдВрдиреЗ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд TPC-C рдкрд░реАрдХреНрд╖рдг рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛ рдкрд╛рдпрдерди рдУрдЖрд░рдПрдо (рдПрд╕рдХреНрдпреВрдПрд▓рдХреЗрдореА рдФрд░ рдкреЛрдиреАрдореЛрд░) рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд▓реЗрдирджреЗрди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЧрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рд╣реИ рдЬрдм рдХрдИ рдЖрднрд╛рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВред


рд╡рд┐рд╡рд░рдг рдкрд░реАрдХреНрд╖рдг


рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рдмрдирд╛рдпрд╛ рдФрд░ рдЖрдмрд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЬреЛ рдХрд┐ рдЧреЛрджрд╛рдореЛрдВ рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ :


рдЫрд╡рд┐


рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЖрда рд░рд┐рд╢реНрддреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


  1. рдЧреЛрджрд╛рдо - рдЧреЛрджрд╛рдо
  2. рдЬрд┐рд▓рд╛ - рдЧреЛрджрд╛рдо рдХреНрд╖реЗрддреНрд░
  3. рдЖрджреЗрд╢ - рдЖрджреЗрд╢
  4. рдСрд░реНрдбрд░рд▓рд╛рдЗрди - рдСрд░реНрдбрд░ рд▓рд╛рдЗрди (рдСрд░реНрдбрд░ рдЖрдЗрдЯрдо)
  5. рд╕реНрдЯреЙрдХ - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреЛрджрд╛рдо рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЙрддреНрдкрд╛рдж рдХреА рдорд╛рддреНрд░рд╛
  6. рдордж - рдордж
  7. рдЧреНрд░рд╛рд╣рдХ рдЧреНрд░рд╛рд╣рдХ
  8. рдЗрддрд┐рд╣рд╛рд╕ - рдЧреНрд░рд╛рд╣рдХ рднреБрдЧрддрд╛рди рдЗрддрд┐рд╣рд╛рд╕

, e . . , :


  1. new_order ( ) тАФ 45%
  2. payment ( ) тАФ 43%
  3. order_status ( ) тАФ 4%
  4. delivery ( ) тАФ 4%
  5. stock_level ( ) тАФ 4%

, TPC-C.


TPC-C , , ORM, . 64+ , .


:


  1. ,
  2. . : Stock 100 000 * W, W тАФ , : 100 * W
  3. 5 . Payment ID, . ID,
  4. NewOrder. , , Order, NewOrder. , NewOrder. , , , , , . Order bool тАЬis_o_deliveredтАЭ, False, ,

, .


New Order


  1. : id id
  2. id
  3. ()
  4. . Item.
  5. , .

Payment


  1. : id id
  2. id
  3. .
  4. 1
  5. , ,
  6. .

рдЖрджреЗрд╢ рдХреА рд╕реНрдерд┐рддрд┐


  1. рдЧреНрд░рд╛рд╣рдХ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд▓реЗрди-рджреЗрди
  2. рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдЙрд╕рдХрд╛ рдЕрдВрддрд┐рдо рдСрд░реНрдбрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  3. рд╕реНрдерд┐рддрд┐ рдСрд░реНрдбрд░ (рд╡рд┐рддрд░рд┐рдд рдпрд╛ рдирд╣реАрдВ) рдФрд░ рдСрд░реНрдбрд░ рдЖрдЗрдЯрдо рд╕реЗ рд▓реА рдЧрдИ рд╣реИ

рд╡рд┐рддрд░рдг


  1. рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд▓реЗрди-рджреЗрди
  2. рдЧреЛрджрд╛рдо рд╕реЗ рдЖрдИрдбреА рдФрд░ рдЙрд╕рдХреЗ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  3. рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП, рдкреВрд░реНрд╡рд╡рдд рдЖрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ, рдбрд┐рд▓реАрд╡рд░реА рдХреА рд╕реНрдерд┐рддрд┐ рдЯреНрд░реВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ
  4. рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдСрд░реНрдбрд░ рдЗрд╕ рд▓реЗрдирджреЗрди рдХреЗ рджреМрд░рд╛рди рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рддрд░рдг рдХрд╛рдЙрдВрдЯрд░ рдмрдврд╝рд╛рддрд╛ рд╣реИ

рд╢реЗрдпрд░ рдХреЗ рд╕реНрддрд░


  1. рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд▓реЗрди-рджреЗрди
  2. рдЧреЛрджрд╛рдо рд╕реЗ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  3. рдЗрд╕ рдЧреЛрджрд╛рдо рдХреЗ рдЕрдВрддрд┐рдо 20 рдЖрджреЗрд╢ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдорд╛рдВрдЧреЗ рдЧрдП рд╣реИрдВ
  4. рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП, рдЧреЛрджрд╛рдо рдореЗрдВ рд╢реЗрд╖ рдорд╛рд▓ рдХреА рдорд╛рддреНрд░рд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо


рджреЛ ORM рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


  1. SQLAlchemy рд░реЗрдЦрд╛рдВрдХрди рдХреЛ рдПрдХ рдиреАрд▓реА рд░реЗрдЦрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
  2. PonyORMред рд░реЗрдЦрд╛рдВрдХрди рдХреЛ рдкреАрд▓реА рд░реЗрдЦрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

10 2 , . multiprocessing.


тАФ
тАФ


PostgreSQL



, TPC-C. Pony .


рдЫрд╡рд┐


:
Pony тАФ 2543 /
SQLAlchemy тАФ 1353.4 /


ORM . .


тАЬNew OrderтАЭ


рдЫрд╡рд┐


рдФрд╕рдд рдЧрддрд┐:
рдЯрдЯреНрдЯреВ - 3349.2 рдЯреНрд░рд╛рдВрд╕ / рдорд┐рдирдЯ
SQLAlchemy - 1415.3 рдЯреНрд░рд╛рдВрд╕ / рдорд┐рдирдЯ


рд▓реЗрди-рджреЗрди "рднреБрдЧрддрд╛рди"


рдЫрд╡рд┐


рдФрд╕рдд рдЧрддрд┐:
рдЯрдЯреНрдЯреВ - 7175.3 рдЯреНрд░рд╛рдВрд╕ / рдорд┐рдирдЯ
SQLAlchemy - 4110.6 рдЯреНрд░рд╛рдВрд╕ / рдорд┐рдирдЯ


рд▓реЗрди-рджреЗрди "рдЖрджреЗрд╢ рд╕реНрдерд┐рддрд┐"


рдЫрд╡рд┐


рдФрд╕рдд рдЧрддрд┐:
рдЯрдЯреНрдЯреВ - 16645.6 рдЯреНрд░рд╛рдВрд╕ / рдорд┐рдирдЯ
SQLAlchemy - 4820.8 рдЯреНрд░рд╛рдВрд╕ / рдорд┐рдирдЯ


рд▓реЗрди-рджреЗрди "рд╡рд┐рддрд░рдг"


рдЫрд╡рд┐


рдФрд╕рдд рдЧрддрд┐:
SQLAlchemy - 716.9 рдЯреНрд░рд╛рдВрд╕ / рдорд┐рдирдЯ
рдкреЛрдиреА - 323.5 рдЯреНрд░рд╛рдВрд╕ / рдорд┐рдирдЯ


рд▓реЗрди-рджреЗрди "рд╕реНрдЯреЙрдХ рд╕реНрддрд░"


рдЫрд╡рд┐


рдФрд╕рдд рдЧрддрд┐:
рдЯрдЯреНрдЯреВ - 677.3 рдЯреНрд░рд╛рдВрд╕ / рдорд┐рдирдЯ
SQLAlchemy - 167.9 рдЯреНрд░рд╛рдВрд╕ / рдорд┐рдирдЯ


рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдХрд┐, рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдПрдХ рдУрдЖрд░рдПрдо рджреВрд╕рд░реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рдХреНрдпреЛрдВ рд╣реИ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдЖрдпрд╛ рд╣реИ:


  1. 4 5 PonyORM , , SQL PonyORM Python SQL, , SQLALchemy SQL . PonyORM:


    stocks = select(stock for stock in Stock
    if stock.warehouse == whouse
    and stock.item in items).order_by(Stock.id).for_update()

    SQLAlchemy:


    stocks = session.query(Stock).filter(
    Stock.warehouse == whouse, Stock.item.in_(items)).order_by(text("id")).with_for_update()

  2. SQLAlchemy Delivery , UPDATE, , .



, SQLAlchemy:


INFO:sqlalchemy.engine.base.Engine:UPDATE order_line SET delivery_d=%(delivery_d)s WHERE order_line.id = %(order_line_id)s
INFO:sqlalchemy.engine.base.Engine:(
{'delivery_d': datetime.datetime(2020, 4, 6, 14, 33, 6, 922281), 'order_line_id': 316},
{'delivery_d': datetime.datetime(2020, 4, 6, 14, 33, 6, 922272), 'order_line_id': 317},
{'delivery_d': datetime.datetime(2020, 4, 6, 14, 33, 6, 922261))

Pony Update:


SELECT "id", "delivery_d", "item", "amount", "order"
FROM "orderline"
WHERE "order" = %(p1)s
{'p1':911}

UPDATE "orderline"
SET "delivery_d" = %(p1)s
WHERE "id" = %(p2)s
  AND "order" = %(p3)s
{'p1':datetime.datetime(2020, 4, 7, 17, 48, 58, 585932), 'p2':5047, 'p3':911}

UPDATE "orderline"
SET "delivery_d" = %(p1)s
WHERE "id" = %(p2)s
  AND "order" = %(p3)s
{'p1':datetime.datetime(2020, 4, 7, 17, 48, 58, 585990), 'p2':5048, 'p3':911}


рдЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд▓рд╛рддреЗ рд╕рдордп рдкреЛрдиреА рдмрд╣реБрдд рддреЗрдЬ рд╣реИ, рдФрд░ SQLAlchemy рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬреА рд╕реЗ рдЕрджреНрдпрддрди рдХреНрд╡реЗрд░реА рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред


рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЕрдиреНрдп ORM (Peewee, Django) рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред


рд╕рдВрджрд░реНрдн


рдкрд░реАрдХреНрд╖рдг рдХреЛрдб: SQLAlchemy рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓рд┐рдВрдХ
: рдкреНрд░рд▓реЗрдЦрди , рд╕рдореБрджрд╛рдп
рдЯрдЯреНрдЯреВ: рдкреНрд░рд▓реЗрдЦрди , рд╕рдореБрджрд╛рдп


All Articles