SQL рдЧрд╛рдЗрдб: рдкреНрд░рд╢реНрди рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ рдмреЗрд╣рддрд░ (рднрд╛рдЧ 2)

рдЬрд╛рд░реА рд▓реЗрдЦ рдПрд╕рдХреНрдпреВрдПрд▓ рдЧрд╛рдЗрдб: рдкреНрд░рд╢реНрди рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ рдмреЗрд╣рддрд░ (рднрд╛рдЧ 1)

рдЕрдиреБрд░реЛрдз рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛рдУрдВ рддрдХ


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

рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЕрдВрддрд┐рдо рдЦрдВрдб рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреБрдЫ рдПрдВрдЯреАрдкреИрдЯрд░реНрди рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ AND , OR рдФрд░ NOT рдСрдкрд░реЗрдЯрд░реЛрдВ рдФрд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЙрдирдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ред рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рди рдХреЗрд╡рд▓ рдЕрдзрд┐рдХ рд╕рдВрд░рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд▓реНрдХрд┐ рдПрдХ рдЧрд╣рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╕рдВрд░рдЪрд┐рдд рдФрд░ рдЧрд╣рд░рд╛рдИ рд╕реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдЖрдк рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдХреНрд╡реЗрд░реА рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ "рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЯреНрд░реА" рдпрд╛ "рдкрд╛рд░реНрд╕ рдЯреНрд░реА" рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдХреИрд╕реЗ рд╕рдордиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрд╡реЗрд░реА рдЕрдиреБрдХреВрд▓рди


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд░рд┐рдЪрдп рдореЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдЙрди рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рдХ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдЕрдиреБрд░реЛрдз рдпреЛрдЬрдирд╛ рдХреЛ рджреЗрдЦрдХрд░ рдлрд┐рд░ рд╕реЗ рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

  • рдХреБрдЫ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рдРрд╕реЗ рдЙрдкрдХрд░рдг рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛ рдХреЗ рдЪрд┐рддреНрд░рдордп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:


  • рдЕрдиреНрдп рдЙрдкрдХрд░рдг рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛ рдХрд╛ рдПрдХ рдкрд╛рдареНрдп рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдУрд░реЗрдХрд▓ рдореЗрдВ EXPLAIN PLAN рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдирд╛рдо рдЙрд╕ DBMS рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░ рдЖрдк EXPLAIN (MySQL, PostgreSQL) рдпрд╛ EXPLAIN QUERY PLAN (SQLite) рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм PostgreSQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк EXPLAIN рдмреАрдЪ рдПрдХ рдЕрдВрддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдмрд╕ рдПрдХ рд╡рд┐рд╡рд░рдг рдорд┐рд▓рддрд╛ рд╣реИ рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпреЛрдЬрдирд╛рдХрд╛рд░ рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдХреИрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ EXPLAIN ANALYZE рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХрд╛ EXPLAIN ANALYZE рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЕрдкреЗрдХреНрд╖рд┐рдд рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрд░реЛрдз рдпреЛрдЬрдирд╛рдПрдВред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдПрдХ рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рдореВрд▓реНрдпрд╛рдВрдХрди рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рд╡рд╣ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХреНрдпрд╛ рдХрд░реЗрдЧреАред рдпрджреНрдпрдкрд┐ рдпрд╣ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорддреБрд▓реНрдп рд╣реИ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЖрдБрдХрдбрд╝реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрдм рд╣реБрдЖ рдЬрдм рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ, рдЖрдк EXPLAIN рдФрд░ ANALYZE рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ: one_million рдФрд░ half_million ред

рдЖрдк one_million рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ one_million рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╡рд░реНрддрдорд╛рди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдЕрдиреБрд░реЛрдз рдХреЗ рдКрдкрд░ рдЗрд╕реЗ рд╕реАрдзреЗ рд░рдЦрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ, рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛ рд▓реМрдЯрд╛ рджреЗрдЧрд╛:

 EXPLAIN SELECT * FROM one_million; QUERY PLAN ____________________________________________________ Seq Scan on one_million (cost=0.00..18584.82 rows=1025082 width=36) (1 row) 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреБрд░реЛрдз рдХреА рд▓рд╛рдЧрдд 0.00..18584.82 , рдФрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 1025082 ред рд╕реНрддрдВрднреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЪреМрдбрд╝рд╛рдИ 36 ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк ANALYZE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 ANALYZE one_million; EXPLAIN SELECT * FROM one_million; QUERY PLAN ____________________________________________________ Seq Scan on one_million (cost=0.00..18334.00 rows=1000000 width=37) (1 row) 

EXPLAIN рдФрд░ ANALYZE рдЕрд▓рд╛рд╡рд╛, рдЖрдк EXPLAIN ANALYZE рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рдирдЯрд╛рдЗрдо рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 EXPLAIN ANALYZE SELECT * FROM one_million; QUERY PLAN ___________________________________________________________ Seq Scan on one_million (cost=0.00..18334.00 rows=1000000 width=37) (actual time=0.015..1207.019 rows=1000000 loops=1) Total runtime: 2320.146 ms (2 rows) 

EXPLAIN ANALYZE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдХреНрд╡реЗрд░реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ!

рдЕрдм рддрдХ, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЧрдП рд╕рднреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо Seq Scan (рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдХреИрди) рдпрд╛ рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреИрди рд╣реИрдВ: рдпрд╣ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдХреИрди рд╕реНрдХреИрди рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдХреНрд░рдо рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд╛рдП рдЧрдП рдХреЙрд▓рдо рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рд╢рд░реНрдд рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдпрд╛ рдирд╣реАрдВред рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдХреИрди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЕрднреА рднреА рдПрдХ рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреИрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ: рдЕрдиреБрдХреНрд░рдорд┐рдХ рд░реАрдб рдзреАрдореА рдбрд┐рд╕реНрдХ рдкрд░ рднреА рдмрд╣реБрдд рддреЗрдЬ рд╣реИрдВред

рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЬрд╛рдиреЗрдВрдЧреЗ рдЬрдм рд╣рдо рд╕реВрдЪрдХрд╛рдВрдХ рд╕реНрдХреИрдирд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛:

 EXPLAIN ANALYZE SELECT * FROM one_million JOIN half_million ON (one_million.counter=half_million.counter); QUERY PLAN _________________________________________________________________ Hash Join (cost=15417.00..68831.00 rows=500000 width=42) (actual time=1241.471..5912.553 rows=500000 loops=1) Hash Cond: (one_million.counter = half_million.counter) -> Seq Scan on one_million (cost=0.00..18334.00 rows=1000000 width=37) (actual time=0.007..1254.027 rows=1000000 loops=1) -> Hash (cost=7213.00..7213.00 rows=500000 width=5) (actual time=1241.251..1241.251 rows=500000 loops=1) Buckets: 4096 Batches: 16 Memory Usage: 770kB -> Seq Scan on half_million (cost=0.00..7213.00 rows=500000 width=5) (actual time=0.008..601.128 rows=500000 loops=1) Total runtime: 6468.337 ms 

рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдиреЗ рдпрд╣рд╛рдВ Hash Join рдЪреБрдирд╛ рд╣реИ! рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдз рдХреА рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ half_million.counter рдореЗрдВ рдХреЛрдИ рдЗрдВрдбреЗрдХреНрд╕ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

 CREATE INDEX ON half_million(counter); EXPLAIN ANALYZE SELECT * FROM one_million JOIN half_million ON (one_million.counter=half_million.counter); QUERY PLAN ________________________________________________________________ Merge Join (cost=4.12..37650.65 rows=500000 width=42) (actual time=0.033..3272.940 rows=500000 loops=1) Merge Cond: (one_million.counter = half_million.counter) -> Index Scan using one_million_counter_idx on one_million (cost=0.00..32129.34 rows=1000000 width=37) (actual time=0.011..694.466 rows=500001 loops=1) -> Index Scan using half_million_counter_idx on half_million (cost=0.00..14120.29 rows=500000 width=5) (actual time=0.010..683.674 rows=500000 loops=1) Total runtime: 3833.310 ms (5 rows) 

рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рдХрд░, рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдиреЗ Index Scan рдХрд░рддреЗ рд╕рдордп Merge join рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИред

рд╕реВрдЪрдХрд╛рдВрдХ рд╕реНрдХреИрдирд┐рдВрдЧ рдФрд░ рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреИрдирд┐рдВрдЧ рдпрд╛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд╕реНрдХреИрдирд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ : рдкрд╣рд▓рд╛, рдЬрд┐рд╕реЗ "рдЯреЗрдмрд▓ рд╕реНрдХреИрдирд┐рдВрдЧ" рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрдмрдВрдзрд┐рдд рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдбреЗрдЯрд╛ рдпрд╛ рдкреГрд╖реНрдареЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИред

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

рдпреБрдХреНрддрд┐: рдпрджрд┐ рдЖрдк EXPLAIN рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ Guillaume Lelarge рдХреА рдЕрдВрдбрд░рд╕реНрдЯреИрдВрдбрд┐рдВрдЧ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЛ рдкрдврд╝реЗрдВред

рдЯрд╛рдЗрдо рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕рд┐рдЯреА рдФрд░ рдмрд┐рдЧ рдУ


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

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЙрдирдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд░реНрдЧреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкреВрд░рд╛ рдХрд░рдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдордп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдпрд╛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдУ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкрджрдирд╛рдо рдмрдбрд╝реЗ O рдХреЗ рд╕рд╛рде, рдЖрдк рд░рдирдЯрд╛рдЗрдо рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИ, рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдирдкреБрдЯ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдмрдбрд╝реЗ рдУ рдиреЛрдЯреЗрд╢рди рдЧреБрдгрд╛рдВрдХ рдФрд░ рдПрдХ рдирд┐рдЪрд▓реЗ рдХреНрд░рдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрдкрдиреА рдХреНрд╡реЗрд░реА рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЗрд╕рдХреА рд╡реГрджреНрдзрд┐ рджрд░ред рдЬрдм рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЧреБрдгрд╛рдВрдХ рдФрд░ рдПрдХ рдирд┐рдЪрд▓реЗ рдХреНрд░рдо рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рддреНрдпрд╛рдЧрддреЗ рд╣реБрдП, рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рдордп рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рд╡рд┐рд╖рдо рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдирдВрдд рддрдХ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ, рдЬрдЯрд┐рд▓рддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдХреНрд╡реЗрд░реА рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдврд╝рддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЖрдХрд╛рд░ рди рдХреЗрд╡рд▓ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрдВрдбреЗрдХреНрд╕ рднреА рдЖрдХрд╛рд░ рдореЗрдВ рдПрдХ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреЗ рд╣реИрдВред

рдЕрдкрдиреА рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛ рдХреА рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛

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

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

рд╕рдВрдХреЗрдд: рдЕрдиреБрдХреНрд░рдорд┐рдд рдЗрд╕ рдХрд╣рд╛рдиреА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ!

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

O (1): рд▓рдЧрд╛рддрд╛рд░ рд╕рдордп


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

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХреНрд╡реЗрд░реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдХ рдРрд╕рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

 SELECT TOP 1 t.* FROM t 

рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдирд┐рд░рдВрддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдПрдХ рдордирдорд╛рдиреА рдкрдВрдХреНрддрд┐ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рдордп рдХреА рд▓рдВрдмрд╛рдИ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рд░реИрдЦрд┐рдХ рд╕рдордп: рдУ (рдПрди)


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

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП WHERE рд╕рд╛рде рдПрдХ рдХреНрд╡реЗрд░реА рд╣реИ: рдПрдХ рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреИрди рдпрд╛ Seq Scan рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ O (n) рд╕рдордп рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдЬрдиреНрдо рджреЗрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╡рд╛рдВрдЫрд┐рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (рдЖрдИрдбреА) рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдкрдврд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реЛред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╡реЗрд░реА рдЙрджрд╛рд╣рд░рдг рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ i_id рдлрд╝реАрд▓реНрдб рдкрд░ рдХреЛрдИ рдЗрдВрдбреЗрдХреНрд╕ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ O (n) рдЬрдЯрд┐рд▓рддрд╛ рд╣реЛрдЧреА:

 SELECT i_id FROM item; 

  • рдкреВрд░реНрд╡рд╡рд░реНрддреА рдХрд╛ рдЕрд░реНрде рдпрд╣ рднреА рд╣реИ рдХрд┐ рдЕрдиреНрдп рдкреНрд░рд╢реНрди, рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП COUNT (*) FROM TABLE; рдУ (рдПрди) рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреИрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдХреБрд▓ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ O (1) рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧреАред

рд░реЗрдЦреАрдп рд░рдирдЯрд╛рдЗрдо рдЙрди рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд░рдирдЯрд╛рдЗрдо рд╕реЗ рдирд┐рдХрдЯрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдЬрд┐рдирдореЗрдВ рдЯреЗрдмрд▓ рдЬреЙрдЗрди рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ:

  • рд╣реИрд╢ рдЬреНрд╡рд╛рдЗрди рдореЗрдВ O (M + N) рдХреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдЬрдЯрд┐рд▓рддрд╛ рд╣реИред рдХреНрд▓рд╛рд╕рд┐рдХ рд╣реИрд╢ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдЫреЛрдЯреА рдореЗрдЬ рдХреА рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред рд╣реИрд╢ рдЯреЗрдмрд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛ рдФрд░ рдЗрд╕рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрддреА рд╣реИред рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХрдиреЗрдХреНрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рддрдХ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, рдПрдХ рдмрдбрд╝реА рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЫреЛрдЯреА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдЦреЛрдЬрдХрд░ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдорд░реНрдЬ рдЬреЙрдЗрди рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ O (M + N) рдЬрдЯрд┐рд▓рддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬреЙрдЗрди рдХреЙрд▓рдо рдЗрдВрдбреЗрдХреНрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ рдФрд░, рдЕрдЧрд░ рдХреЛрдИ рдЗрдВрдбреЗрдХреНрд╕ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЙрдЗрди рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
    • рдпрджрд┐ рджреЛрдиреЛрдВ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдЬреБрдбрд╝рдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рд╣реИрдВ, рддреЛ рдХреНрд╡реЗрд░реА рдореЗрдВ O (M + N) рдХреА рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рд╣реЛрдЧреАред
    • рдпрджрд┐ рджреЛрдиреЛрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ, рддреЛ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрди рд╕реНрддрдВрднреЛрдВ рдХрд╛ рдХреНрд░рдо рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЫрдВрдЯрд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдХрдард┐рдирд╛рдИ O (M + N) рд╣реЛрдЧреАред
    • рдпрджрд┐ рдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЛрдИ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рджреЛрдиреЛрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рддрд╛рдХрд┐ рдЬрдЯрд┐рд▓рддрд╛ O (M рд▓реЙрдЧ M + N рд▓реЙрдЧ N) рдЬреИрд╕реА рджрд┐рдЦреЗред
    • рдпрджрд┐ рдЯреЗрдмрд▓ рдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдореЗрдВ рдХрдиреЗрдХреНрдЯреЗрдб рдХреЙрд▓рдо рдкрд░ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдЯреЗрдмрд▓ рдЬрд┐рд╕рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ рдирд╣реАрдВ рд╣реИ, рдХреЛ рдЬреНрд╡рд╛рдЗрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рддрд╛рдХрд┐ рдЬрдЯрд┐рд▓рддрд╛ рдУ (рдПрдо + рдПрди рд▓реЙрдЧ рдПрди) рдЬреИрд╕реА рджрд┐рдЦреЗред
  • рдиреЗрд╕реНрдЯреЗрдб рдЬреЙрдЗрди рдХреЗ рд▓рд┐рдП, рдЬрдЯрд┐рд▓рддрд╛ рдЖрдорддреМрд░ рдкрд░ рдУ (рдПрдордПрди) рд╣реИред рдпрд╣ рдЬреБрдбрд╝рд╛рд╡ рддрдм рдкреНрд░рднрд╛рд╡реА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдпрд╛ рджреЛрдиреЛрдВ рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдмрд╣реБрдд рдЫреЛрдЯреА рд╣реЛрддреА рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 10 рд╕реЗ рдХрдо рд░рд┐рдХреЙрд░реНрдб), рдЬреЛ рдХрд┐ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдЙрдкрд╢реНрд░реЗрдгрд┐рдпрд╛рдБ рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд▓реМрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВред

рдпрд╛рдж рд░рдЦреЗрдВ: рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рдЬреЙрдЗрди рдПрдХ рдРрд╕рд╛ рдЬреБрдбрд╝рд╛рд╡ рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджреВрд╕рд░реЗ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред

рд▓рдШреБрдЧрдгрдХ рд╕рдордп: рд╣реЗ (рд▓реЙрдЧ (рдПрди))


рдРрд╕рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓реЙрдЧрд░рд┐рджрдорд┐рдХ рд╕рдордп рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдЗрдирдкреБрдЯ рдЖрдХрд╛рд░ рдХреЗ рд▓реЙрдЧрд░рд┐рджрдо рдХреЗ рд╕рдорд╛рдиреБрдкрд╛рддреА рд╣реЛрддрд╛ рд╣реИ; рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрджрд┐ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдХрд╛рд░ рдХреЗ рд▓рдШреБрдЧрдгрдХ рдХреЗ рд▓рд┐рдП рдЖрдиреБрдкрд╛рддрд┐рдХ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рд▓реЙрдЧрд░рд┐рджрдорд┐рдХ рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ Index Scan рдпрд╛ рдПрдХ рд╕рдВрдХреБрд▓ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╕рдВрдХреБрд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ рдЬрд╣рд╛рдВ рдЕрдВрддрд┐рдо рд╕реВрдЪрдХрд╛рдВрдХ рд╕реНрддрд░ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВред рдПрдХ рд╕рдВрдХреБрд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ: рдЗрд╕реЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡реЗ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреБрдВрдЬреА рдмрдирд╛рддреЗ рд╣реИрдВред рдХреНрд▓рд╕реНрдЯрд░рд┐рдВрдЧ рдХреБрдВрдЬреА рдХреНрд▓рд╕реНрдЯрд░ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдкреНрд░рдореБрдЦ рдХреЙрд▓рдо рд╣реИред рдХреНрд▓рд╕реНрдЯрд░ рдХрд┐рдП рдЧрдП рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдпрд╛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдбреАрдмреАрдПрдордПрд╕ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдСрдкрд░реЗрд╢рди рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд╡реЗрд░реА рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ i_id рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ рдФрд░ рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЖрдорддреМрд░ рдкрд░ O (рд▓реЙрдЧ (n)) рдЬрдЯрд┐рд▓рддрд╛ рд╣реЛрддреА рд╣реИ:

 SELECT i_stock FROM item WHERE i_id = N; 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдмрд┐рдирд╛, рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ O (n) рд╣реЛрдЧреАред

рджреНрд╡рд┐рдШрд╛рдд рд╕рдордп: O (n ^ 2)


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

рджреНрд╡рд┐рдШрд╛рдд рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдХреНрд╡реЗрд░реА рдХрд╛ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:

 SELECT * FROM item, author WHERE item.i_a_id=author.a_id 

рдиреНрдпреВрдирддрдо рдЬрдЯрд┐рд▓рддрд╛ рдУ (рдПрди рд▓реЙрдЧ (рдПрди)) рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрдиреЗрдХреНрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕реВрдЪрдХрд╛рдВрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдзрд┐рдХрддрдо рдЬрдЯрд┐рд▓рддрд╛ рдУ (рдПрди ^ 2) рд╣реЛ рд╕рдХрддреА рд╣реИред

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


рдПрд╕рдХреНрдпреВрдПрд▓ рдЯреНрдпреВрдирд┐рдВрдЧ


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

  • рд╕реВрдЪрдХрд╛рдВрдХ рд╕реНрдХреИрди рдХреЗ рд╕рд╛рде рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреИрди рдмрджрд▓реЗрдВ;
  • рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╖реНрдЯрддрдо рдЬреБрдбрд╝рдиреЗ рдХрд╛ рдЖрджреЗрд╢ рд▓рд╛рдЧреВ рд╣реИред
  • рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд╢рд╛рддреАрдд рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░
  • рдЫреЛрдЯреЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдкреВрд░реНрдг-рдкрд╛рда рд╕реНрдХреИрди (рдХреИрд╢ рдЫреЛрдЯреА рддрд╛рд▓рд┐рдХрд╛ рдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреИрди) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

SQL рдХрд╛ рдЖрдЧреЗ рдЙрдкрдпреЛрдЧ


рдмрдзрд╛рдИ! рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЖрдП рд╣реИрдВ, рдЬрд┐рд╕рдиреЗ рдЖрдкрдХреЛ SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдВрдЯреАрдкрд╛рд░реНрдЯрд░реНрди, рдХреНрд╡реЗрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдФрд░ рдЖрдкрдХреЗ рдХреНрд╡реЗрд░реА рдкреНрд▓рд╛рди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдореВрд▓реНрдпрд╛рдВрдХрди рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдЯреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдкрдХреЛ рдЕрднреА рднреА рдмрд╣реБрдд рдХреБрдЫ рдкрддрд╛ рд╣реИ! рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрд░ред рд░рд╛рдордХреГрд╖реНрдгрди рдФрд░ рдЬреЗред рдЧреЗрд╣рд░рдХреЗ рдХреА рдкреБрд╕реНрддрдХ "рдбреЗрдЯрд╛рдмреЗрд╕ рдореИрдиреЗрдЬрдореЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо" рдкрдврд╝реЗрдВред

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЗрд╕ рдЙрджреНрдзрд░рдг рдореЗрдВ рдЖрдкрд╕реЗ StackOverflow рд╕реЗ рдЗрдирдХрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛:
рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ рдПрдВрдЯреАрдкреИрдЯрд░ рдЖрдкрдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рддрдм рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ:

  • рдЖрдкрдХреА рдХреНрд╡реЗрд░реА рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
  • рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрдиреА рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗрдВред
  • рдЖрдк рдкрд╣рд▓реЗ рдХрд╛рд░реНрдп рдЕрдиреБрд░реЛрдз рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдпрд╣ рдЗрд╖реНрдЯрддрдо рдХреЗ рдХрд┐рддрдирд╛ рдХрд░реАрдм рд╣реИред

Source: https://habr.com/ru/post/hi465975/


All Articles