MySQL, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рджреЛ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ *ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдПрд╕рдХреНрдпреВрдПрд▓ рд╣реИред рдпрд╣ рд╣реИрдВрдбрд▓рд░ рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЗрдмрд░ рдкрд░ рдкрд╣рд▓реЗ
рд╕реЗ рд╣реА
рд▓реЗрдЦ рдереЗ ред рджреВрд╕рд░реЗ, рдЗрд╕рдХрд╛ рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рд╣реИред
* - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдПрдХ рдордЬрд╛рдХ рд╣реИред MySQL рдореЗрдВ рдареАрдХ-рдареАрдХ рджреЛ рдХрдорд┐рдпрд╛рдБ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рднреА рдореЗрд░реЗ рд▓рд┐рдЦреЗ рд╣реБрдП рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ рд╣реИрдВред рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдХрдореА, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рджреЛрд╖ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдЧрд░ рд╣рдо рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ MySQL рдореЗрдВ SQL рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрд┐рд▓рдХреБрд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЗрд╕рдХреА рддреБрд▓рдирд╛ (NoSQL рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ) рдХрд░рдиреА рд╣реЛрдЧреА, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, MongoDB рдХреЗ рд╕рд╛рде, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╣реИредрдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рджреВрд╕рд░реА рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рд╛:

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
mysql> r рдХреЗ рд░реВрдк рдореЗрдВ execute_js ("10 + 30") рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ;
+ ---- +
| рдЖрд░ |
+ ---- +
| 40 |
+ ---- +
1 рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реЗрдЯ (0.08 рд╕реЗрдХрдВрдб)
рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрд╛рд░рд┐рдд рдХреА, рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдпрд╛ред
mysql> execute_js ("function f (x) {return x + 20;}; f (30)") рдХреЛ r рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдиреЗрдВ;
+ ---- +
| рдЖрд░ |
+ ---- +
| 50 |
+ ---- +
1 рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реЗрдЯ (0.08 рд╕реЗрдХрдВрдб)
рдЗрд╕реА рддрд░рд╣: рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдпрд╛, рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдпрд╛ред
mysql> execute_js ("function func (x) {return x * 1 + 10;}", "func", "20") рдХреЛ r рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдиреЗрдВ; # рд╡рд┐рд╡рд░рдг рдиреАрдЪреЗ рджреЗрдЦреЗрдВ
+ ---- +
| рдЖрд░ |
+ ---- +
| 30 |
+ ---- +
1 рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реЗрдЯ (0.08 рд╕реЗрдХрдВрдб)
mysql> execute_js ("рдЖрд╡рд╢реНрдпрдХрддрд╛ ('/ tmp / func.js')", "func", "30") рдХреЛ r рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдиреЗрдВ; # рд╡рд┐рд╡рд░рдг рдиреАрдЪреЗ рджреЗрдЦреЗрдВ
+ ---- +
| рдЖрд░ |
+ ---- +
| 40 |
+ ---- +
1 рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕реЗрдЯ (0.08 рд╕реЗрдХрдВрдб)
рдпрд╣рд╛рдВ рд╣рдо (1) рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рд╡реИрд╢реНрд╡рд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ, (2) рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд╛рдо рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, (3 - ...) рдЗрд╕реЗ рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╣рддреЗ рд╣реИрдВред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
mysql> execute_js ("рдЖрд╡рд╢реНрдпрдХрддрд╛ ('/ tmp / func.js')"; "," func ", CONCAT (num.i," ")) рдХреЛ r рд╕реЗ r рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдиреЗрдВ;
+ ---- +
| рдЖрд░ |
+ ---- +
| 11 |
| 12 |
| 13 |
| 13 |
| 15 |
| 16 |
| 16 |
| 16 |
| 19 |
| 19 |
| 19 |
| 20 |
+ ---- +
рд╕реЗрдЯ рдореЗрдВ 12 рдкрдВрдХреНрддрд┐рдпрд╛рдБ (0.08 рд╕реЗрдХрдВрдб)
рдпрд╣рд╛рдБ рдХреНрдпреЛрдВ рд╣реИ: рдПрдХ рдмрд╛рд░ рдЬрдм рд╣рдо рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдмрд╛рд░ рд╣рдо рд╡рд╣рд╛рдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдИ рдмрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╣рддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ, 0.08 рд╕реЗрдХрдВрдб V8 рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЯрд╛рдЗрдо рд╣реИред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП V8 рдХреЛ рдПрдХ рдмрд╛рд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдмрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдзрд╛рдЧреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдХрд┐рд╕реА рдФрд░ рднреА рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╕реНрд░реЛрдд рджреЗрдЦреЗрдВTODO рд╕реВрдЪреА:
1. рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ / рд╕реНрдерд┐рд░рддрд╛ред рдЕрдм рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред
2. рдХрдо V8 рджреБрднрд╛рд╖рд┐рдпрд╛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝
3. mysql_find - MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП NoSQL рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдпрд╣рд╛рдВ рдореИрдВ рдЕрднреА рднреА рддрд╛рд▓реЗ рдФрд░ рд▓реЗрдирджреЗрди рд╕реЗ рдирд┐рдкрдЯ рд░рд╣рд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рд╕рднреА рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЛ рдПрдХ рд╣реА рд▓реЗрди-рджреЗрди рдХреЗ рднреАрддрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдПрдХ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдПрдХ рд╣реА рд▓реЗрдирджреЗрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджреЗрдВ?
рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред