DuckDB 0.6.0 рдкреНрд░рдХрд╛рд╢рд┐рдд, рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдкреНрд░рд╢реНрдирд╛рдВрд╕рд╛рдареА SQLite рдкрд░реНрдпрд╛рдп

рдбрдХрдбреАрдмреА 0.6.0 рдбреАрдмреАрдПрдордПрд╕рдЪреЗ рдкреНрд░рдХрд╛рд╢рди рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ, рдХреЙрдореНрдкреЕрдХреНрдЯрдиреЗрд╕, рдПрдореНрдмреЗрдбреЗрдб рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рд░реВрдкрд╛рдд рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛, рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдХрд╛ рдлрд╛рдИрд▓рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдзрдиреЗ рдЖрдгрд┐ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирд╕рд╣ рд╕реЛрдпреАрд╕реНрдХрд░ рд╕реАрдПрд▓рдЖрдп рдЗрдВрдЯрд░рдлреЗрд╕ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ SQLite рдЪреЗ рдЧреБрдгрдзрд░реНрдо рдПрдХрддреНрд░ рдХрд░рдгреЗ. рд╕рдВрдЧреНрд░рд╣рд┐рдд рдбреЗрдЯрд╛рдЪрд╛ рдПрдХ рдорд╣рддреНрддреНрд╡рд╛рдЪрд╛ рднрд╛рдЧ рдХрд╡реНрд╣рд░ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдХреНрд╡реЗрд░реА, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рд╕рд╛рд░рдгреНрдпрд╛рдВрдЪреА рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдПрдХрддреНрд░рд┐рдд рдХрд░рддреЗ рдХрд┐рдВрд╡рд╛ рдЕрдиреЗрдХ рдореЛрдареНрдпрд╛ рд╕рд╛рд░рдгреНрдпрд╛ рд╡рд┐рд▓реАрди рдХрд░рддрд╛рдд. рдкреНрд░рдХрд▓реНрдк рдХреЛрдб рдПрдордЖрдпрдЯреА рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рдЕрджреНрдпрд╛рдк рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдкреНрд░рдХрд╛рд╢рди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдЖрд╣реЗ, рдХрд╛рд░рдг рд╕реНрдЯреЛрд░реЗрдЬ рд╕реНрд╡рд░реВрдк рдЕрджреНрдпрд╛рдк рд╕реНрдерд┐рд░ рдЭрд╛рд▓реЗ рдирд╛рд╣реА рдЖрдгрд┐ рдЖрд╡реГрддреНрддреА рддреЗ рдЖрд╡реГрддреНрддреА рдмрджрд▓рддреЗ.

DuckDB рдПрдХ рдкреНрд░рдЧрдд SQL рдмреЛрд▓реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЕрддреНрдпрдВрдд рдХреНрд▓рд┐рд╖реНрдЯ рдЖрдгрд┐ рд╡реЗрд│ рдШреЗрдгрд╛рд░реЗ рдкреНрд░рд╢реНрди рд╣рд╛рддрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд╖рдорддрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ. рдЬрдЯрд┐рд▓ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ (рдЕреЕрд░реЗ, рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕, рдпреБрдирд┐рдпрди) рдЖрдгрд┐ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдЖрдгрд┐ рдиреЗрд╕реНрдЯреЗрдб рд╕рд╣рд╕рдВрдмрдВрдзрд┐рдд рд╕рдмрдХреНрд╡реЗрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ. CSV рдЖрдгрд┐ Parquet рдлрд╛рдпрд▓реАрдВрдордзреВрди рдереЗрдЯ рдХреНрд╡реЗрд░реА рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕, рдПрдХрд╛рдЪ рд╡реЗрд│реА рдПрдХрд╛рдзрд┐рдХ рдХреНрд╡реЗрд░реА рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕ рд╣реЗ рд╕рдорд░реНрдерди рдХрд░рддреЗ. PostgreSQL DBMS рд╡рд░реВрди рдЖрдпрд╛рдд рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ.

SQLite рдХрдбреАрд▓ рд╢реЗрд▓ рдХреЛрдб рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдкреНрд░рдХрд▓реНрдк рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕рдХреНрдпреВрдПрд▓ рдордзреАрд▓ рдПрдХрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдкрд╛рд░реНрд╕рд░, MonetDB рдордзреАрд▓ рддрд╛рд░реАрдЦ рдЧрдгрд┐рдд рдШрдЯрдХ, рд╡рд┐рдВрдбреЛ рдлрдВрдХреНрд╢рдиреНрд╕рдЪреА рд╕реНрд╡рддрдГрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА (рд╕реЗрдЧрдореЗрдВрдЯ рдЯреНрд░реА рдПрдХрддреНрд░реАрдХрд░рдг рдЕрд▓реНрдЧреЛрд░рд┐рджрдорд╡рд░ рдЖрдзрд╛рд░рд┐рдд), рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд╛рдкрд░рддреЛ. RE2 рд▓рд╛рдпрдмреНрд░рд░реА, рддреНрдпрд╛рдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭрд░, рдЖрдгрд┐ MVCC рдирд┐рдпрдВрддреНрд░рдг рдпрдВрддреНрд░рдгрд╛ рдПрдХрд╛рдЪрд╡реЗрд│реА рдХрд╛рд░реНрдпрд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА (рдорд▓реНрдЯреА-рд╡реНрд╣рд░реНрдЬрди рдХреЙрдиреНрдХрд░рдиреНрд╕реА рдХрдВрдЯреНрд░реЛрд▓), рддрд╕реЗрдЪ рд╣рд╛рдпрдкрд░-рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ рдХреНрд╡реЗрд░реА рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди рдЕрд▓реНрдЧреЛрд░рд┐рджрдорд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╡реНрд╣реЗрдХреНрдЯрд░рд╛рдЗрдЬреНрдб рдХреНрд╡реЗрд░реА рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди рдЗрдВрдЬрд┐рди, рдЬреЗ рдореЛрдареНрдпрд╛ рдореВрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реЗрдЯрд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдПрдХрд╛рдЪ рдСрдкрд░реЗрд╢рдирдордзреНрдпреЗ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреЗ.

рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рдирд╛рддреАрд▓ рдмрджрд▓рд╛рдВрдкреИрдХреА:

  • рд╕реНрдЯреЛрд░реЗрдЬ рдлреЙрд░рдореЕрдЯ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рдЪреЗ рдХрд╛рдо рдЪрд╛рд▓реВ рд░рд╛рд╣рд┐рд▓реЗ. рдПрдХ рдЖрд╢рд╛рд╡рд╛рджреА рдбрд┐рд╕реНрдХ рд▓реЗрдЦрди рдореЛрдб рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдПрдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд рдбреЗрдЯрд╛рдЪрд╛ рдореЛрдард╛ рд╕рдВрдЪ рд▓реЛрдб рдХрд░рддрд╛рдирд╛, COMMIT рдХрдорд╛рдВрдбрджреНрд╡рд╛рд░реЗ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдЪреА рдкреБрд╖реНрдЯреА рд╣реЛрдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рди рдХрд░рддрд╛ рдбреЗрдЯрд╛ рд╕рдВрдХреБрдЪрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдореЛрдбрдордзреНрдпреЗ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреВрди рдлрд╛рдЗрд▓рд╡рд░ рд▓рд┐рд╣рд┐рд▓рд╛ рдЬрд╛рддреЛ. . рдЬреЗрд╡реНрд╣рд╛ COMMIT рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ, рддреЗрд╡реНрд╣рд╛ рдбреЗрдЯрд╛ рдЖрдзреАрдЪ рдбрд┐рд╕реНрдХрд╡рд░ рд▓рд┐рд╣рд┐рд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдЬреЗрд╡реНрд╣рд╛ ROLLBACK рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рддреЗрд╡реНрд╣рд╛ рддреЛ рдЯрд╛рдХреВрди рджрд┐рд▓рд╛ рдЬрд╛рддреЛ. рдкреВрд░реНрд╡реА, рдбреЗрдЯрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдкреВрд░реНрдгрдкрдгреЗ рдореЗрдорд░реАрдордзреНрдпреЗ рдЬрддрди рдХреЗрд▓рд╛ рдЬрд╛рдд рдЕрд╕реЗ, рдЖрдгрд┐ рд╡рдЪрдирдмрджреНрдз рдЭрд╛рд▓реНрдпрд╛рд╡рд░, рддреЛ рдбрд┐рд╕реНрдХрд╡рд░ рдЬрддрди рдХреЗрд▓рд╛ рдЬрд╛рдд рдЕрд╕реЗ.
  • рд╕реНрд╡рддрдВрддреНрд░ рд╕рд╛рд░рдгреНрдпрд╛рдВрдордзреНрдпреЗ рдбреЗрдЯрд╛рдЪреНрдпрд╛ рд╕рдорд╛рдВрддрд░ рд▓реЛрдбрд┐рдВрдЧрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдорд▓реНрдЯреА-рдХреЛрд░ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рд▓реЛрдбрд┐рдВрдЧ рдЧрддреА рд▓рдХреНрд╖рдгреАрдп рд╡рд╛рдврд╡рд┐рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдорд╛рдЧреАрд▓ рд░рд┐рд▓реАрдЭрдордзреНрдпреЗ, 150-рдХреЛрд░ рд╕реАрдкреАрдпреВрд╡рд░ 10 рджрд╢рд▓рдХреНрд╖ рдкрдВрдХреНрддреА рдЕрд╕рд▓реЗрд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА 91 рд╕реЗрдХрдВрдж рд▓рд╛рдЧрд▓реЗ, рдкрд░рдВрддреБ рдирд╡реАрди рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ рд╣реЗ рдСрдкрд░реЗрд╢рди 17 рд╕реЗрдХрдВрджрд╛рдд рдкреВрд░реНрдг рдЭрд╛рд▓реЗ. рджреЛрди рд╕рдорд╛рдВрддрд░ рд▓реЛрдбрд┐рдВрдЧ рдореЛрдб рдЖрд╣реЗрдд - рд░реЗрдХреЙрд░реНрдбрдЪреНрдпрд╛ рдСрд░реНрдбрд░рдЪреНрдпрд╛ рдЬрддрдирд╛рд╕рд╣ рдЖрдгрд┐ рдСрд░реНрдбрд░рдЪреЗ рдЬрддрди рди рдХрд░рддрд╛.
  • рдбреЗрдЯрд╛ рдХреЙрдореНрдкреНрд░реЗрд╢рдирд╕рд╛рдареА, FSST (рдлрд╛рд╕реНрдЯ рд╕реНрдЯреЕрдЯрд┐рдХ рд╕рд┐рдореНрдмреЙрд▓ рдЯреЗрдмрд▓) рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ, рдЬреЛ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд╛рдорд╛рдиреНрдп рдЬреБрд│рдгреНрдпрд╛рдВрдЪрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджрдХреЛрд╢ рд╡рд╛рдкрд░реВрди рд╕реНрдЯреНрд░рд┐рдВрдЧрдордзреНрдпреЗ рдбреЗрдЯрд╛ рдкреЕрдХ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рдирд╡реАрди рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рдореБрд│реЗ рдЪрд╛рдЪрдгреА рдбреЗрдЯрд╛рдмреЗрд╕рдЪрд╛ рдЖрдХрд╛рд░ 761MB рд╡рд░реВрди 251MB рдкрд░реНрдпрдВрдд рдХрдореА рдХрд░рдгреЗ рд╢рдХреНрдп рдЭрд╛рд▓реЗ.
  • рдЪрд┐рдВрдк рдЖрдгрд┐ рдкрдЯрд╛рд╕ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдХреНрд░рдорд╛рдВрдХ (рдбрдмрд▓ рдЖрдгрд┐ рдлреНрд▓реЛрдЯ) рд╕рдВрдХреБрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗрдд. рдкреВрд░реНрд╡реА рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рдЧреЛрд░рд┐рд▓реНрд▓рд╛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдордЪреНрдпрд╛ рддреБрд▓рдиреЗрдд, рдЪрд┐рдВрдк рдЙрдЪреНрдЪ рдкрд╛рддрд│реАрдЪреЗ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдЖрдгрд┐ рдЬрд▓рдж рдбреАрдХрдВрдкреНрд░реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдкреЕрдЯрд╛рд╕ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЙрдореНрдкреНрд░реЗрд╢рди рд░реЗрд╢реЛрдордзреНрдпреЗ рдЪрд┐рдВрдкрдкреЗрдХреНрд╖рд╛ рдорд╛рдЧреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдбреАрдХрдВрдкреНрд░реЗрд╢рди рдЧрддреАрдордзреНрдпреЗ рдЦреВрдкрдЪ рд╡реЗрдЧрд╡рд╛рди рдЖрд╣реЗ, рдЬреЗ рдЕрд╕рдВрдкреАрдбрд┐рдд рдбреЗрдЯрд╛ рд╡рд╛рдЪрдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╡рд│рдЬрд╡рд│ рд╡реЗрдЧрд│реЗ рдирд╛рд╣реА.
  • CSV рдлрд╛рдпрд▓реАрдВрдордзреВрди рдбреЗрдЯрд╛ рдПрдХрд╛рдзрд┐рдХ рд╕рдорд╛рдВрддрд░ рдкреНрд░рд╡рд╛рд╣рд╛рдВрдордзреНрдпреЗ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рдЪреА рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА (SET experimental_parallel_csv=true), рдЬреЗ рдореЛрдареНрдпрд╛ CSV рдлрд╛рдпрд▓реА рд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд▓рд╛рдЧрдгрд╛рд░рд╛ рд╡реЗрд│ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рдХрд░рддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╣рд╛ рдкрд░реНрдпрд╛рдп рд╕рдХреНрд╖рдо рдЕрд╕рддрд╛рдирд╛, 720 MB CSV рдлрд╛рдЗрд▓рд╕рд╛рдареА рдбрд╛рдЙрдирд▓реЛрдб рд╡реЗрд│ 3.5 рд╡рд░реВрди 0.6 рд╕реЗрдХрдВрджрд╛рдВрдкрд░реНрдпрдВрдд рдХрдореА рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛.
  • рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрдорд┐рддреА рдЖрдгрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рд╕рдорд╛рдВрддрд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреА рд╢рдХреНрдпрддрд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, 16 рджрд╢рд▓рдХреНрд╖ рд░реЗрдХреЙрд░реНрдб рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реНрддрдВрднрд╛рд╡рд░реАрд▓ рдХреНрд░рд┐рдПрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдСрдкрд░реЗрд╢рди 5.92 рд╡рд░реВрди 1.38 рд╕реЗрдХрдВрджрд╛рдВрдкрд░реНрдпрдВрдд рдХрдореА рдХреЗрд▓реЗ рдЧреЗрд▓реЗ.
  • "COUNT(DISTINCT col)" рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдХреНрд╡реЗрд░реАрдВрдордзреНрдпреЗ рдПрдХрддреНрд░реАрдХрд░рдг рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреЗ рд╕рдорд╛рдВрддрд░реАрдХрд░рдг рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ.
  • SQL рдиреЗ UNION рдкреНрд░рдХрд╛рд░рд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рдПрдХрд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдкреНрд░рдХрд╛рд░рд╛рдВрдирд╛ рдПрдХрд╛ рдШрдЯрдХрд╛рд▓рд╛ рдмрд╛рдВрдзреВрди рдареЗрд╡рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, тАЬUNION(num INT, error VARCHAR))тАЭ).
  • SQL "SELECT" рдРрд╡рдЬреА "FROM" рдпрд╛ рд╢рдмреНрджрд╛рдиреЗ рд╕реБрд░реВ рд╣реЛрдгрд╛рд▒реНрдпрд╛ рдХреНрд╡реЗрд░реА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рд▓реЗ рдЬрд╛рддреЗ рдХреА рдХреНрд╡реЗрд░реА "SELECT *" рдиреЗ рд╕реБрд░реВ рд╣реЛрддреЗ.
  • SQL рдиреЗ COLUMNS рдЕрднрд┐рд╡реНрдпрдХреНрддреАрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдЪреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рди рдХрд░рддрд╛ рдПрдХрд╛рдзрд┐рдХ рд╕реНрддрдВрднрд╛рдВрд╡рд░ рдСрдкрд░реЗрд╢рди рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, "obs рдордзреВрди MIN(COLUMNS(*)) рдирд┐рд╡рдбрд╛;" obs рд╕рд╛рд░рдгреАрдордзреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдВрднрд╛рд╕рд╛рдареА MIN рдлрдВрдХреНрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛрдИрд▓ рдЖрдгрд┐ "obs рдордзреВрди COLUMNS('val[0-9]+') рдирд┐рд╡рдбрд╛;" "val" рдЖрдгрд┐ рд╕рдВрдЦреНрдпрд╛ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдирд╛рд╡рд╛рд╕рд╣ рд╕реНрддрдВрднрд╛рдВрд╕рд╛рдареА.
  • рд╕реВрдЪреАрд╡рд░реАрд▓ рдСрдкрд░реЗрд╢рдиреНрд╕рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, тАЬрдирд┐рд╡рдбрд╛ [x + 1 for x [1, 2, 3]] AS l;тАЭ.
  • рдореЗрдорд░реА рд╡рд╛рдкрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. рдбрд┐рдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, Linux рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдореЗрдорд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рд╕рд╛рдареА jemalloc рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд╛рдкрд░рддреЛ. рдЬреЗрд╡реНрд╣рд╛ рдореЗрдорд░реА рдорд░реНрдпрд╛рджрд┐рдд рдЕрд╕рддреЗ рддреЗрд╡реНрд╣рд╛ рд╣реЕрд╢ рд╡рд┐рд▓реАрдиреАрдХрд░рдг рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреЗ рд▓рдХреНрд╖рдгреАрдп рд╕реБрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди.
  • рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕рдордзреНрдпреЗ ".рдореЛрдб рдбрдХрдмреЙрдХреНрд╕" рдЖрдЙрдЯрдкреБрдЯ рдореЛрдб рдЬреЛрдбрд▓рд╛, рдЬреЛ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛрдЪреА рд░реБрдВрджреА рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди рдордзрд▓реЗ рд╕реНрддрдВрдн рдЯрд╛рдХреВрди рджреЗрддреЛ (рдЦреВрдк рд╕рдВрдЦреНрдпреЗрдиреЗ рдХреЙрд▓рдорд╕рд╣ рдХреНрд╡реЗрд░реАрдЪреНрдпрд╛ рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪреЗ рджреНрд░реБрддрдкрдгреЗ рджреГрд╢реНрдпрдорд╛рди рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп, рдЬрд╕реЗ рдХреА "рдирд┐рд╡рдбрд╛ * FROM tbl", рдЬреЗ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдбрдордзреНрдпреЗ рдЕрдиреЗрдХ рдУрд│реАрдВрдордзреНрдпреЗ рдкрд╕рд░рд▓реЗрд▓реЗ рдЖрд╣реЗ). тАЬ.maxrows XтАЭ рдкреЕрд░рд╛рдореАрдЯрд░ рд╡рд╛рдкрд░реВрди, рддреБрдореНрд╣реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрдВрдХреНрддреАрдВрдЪреА рд╕рдВрдЦреНрдпрд╛ рджреЗрдЦреАрд▓ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░реВ рд╢рдХрддрд╛.
  • CLI рд╕рдВрджрд░реНрдн рд▓рдХреНрд╖рд╛рдд рдШреЗрдКрди рдЗрдирдкреБрдЯрдЪреА рд╕реНрд╡рдпрдВрдкреВрд░реНрдгрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ (рдХреАрд╡рд░реНрдб, рдЯреЗрдмрд▓рдЪреА рдирд╛рд╡реЗ, рдлрдВрдХреНрд╢рдиреНрд╕, рдХреЙрд▓рдордЪреА рдирд╛рд╡реЗ рдЖрдгрд┐ рдлрд╛рдЗрд▓рдЪреА рдирд╛рд╡реЗ рдкреВрд░реНрдг рдЭрд╛рд▓реА рдЖрд╣реЗрдд).
  • CLI рдордзреНрдпреЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗрд▓рд╛ рдХреНрд╡реЗрд░реА рдкреНрд░рдЧрддреА рдирд┐рд░реНрджреЗрд╢рдХ рдЕрд╕рддреЛ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛