MySQL (JSON) рдореЗрдВ рд▓рдЪреАрд▓рд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣рдг

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



рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕


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

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


рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рджреМрд░рд╛рди, рдХрдИ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдП рдЧрдП рдФрд░ рд▓рд╛рдЗрд╡ рдЦреЗрд▓реЗ рдЧрдПред рдкрд╛рда рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрдкреВрд░реНрдг рдЪрд┐рддреНрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред

рдЗрд╕рд▓рд┐рдП, рдПрдХ рдиреЛрдЯрдмреБрдХ рдореЗрдВ рдореМрд╕рдо рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрдВрдЯрд░рдиреЗрдЯ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВ - рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ, рдирдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ, рдЕрд░реБрдбрд┐рдиреЛ - рд╣рдЬрд╛рд░реЛрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрдЯрд┐рдХрд▓ рдлреЛрдЯреЙрди рдирд╛рдордХ рдПрдХ рдЙрдкрдХрд░рдг рдЪреБрдирд╛ред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ $ 19 рдХреА рд▓рд╛рдЧрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рдХрдг рдлреЛрдЯреЙрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ:

  1. 100% рдмрд╛рджрд▓ рд╕рдорд╛рдзрд╛рди;
  2. рдХрд┐рд╕реА рднреА рд╕реЗрдВрд╕рд░ рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Arduino рдХреЗ рд▓рд┐рдПред рдЗрди рд╕рдмрдХреА рдХреАрдордд рдПрдХ рдбреЙрд▓рд░ рд╕реЗ рднреА рдХрдо рд╣реИред

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рди рдХреЗрд╡рд▓ рд░реЛрд╢рдиреА рдФрд░ рдЗрддрдиреЗ рдкрд░ рдорд╛рдк рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлреЛрди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ - рдореИрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХрд┐рд╕ рддрд░рд╣ рдХреА рд░реЛрд╢рдиреА рд╣реИ), рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреАред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ MySQL рдЕрдиреБрднрд╡реА рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ MySQL рдХреЛ рдЪреБрдирд╛ред

рд╣рдо MySQL рдореЗрдВ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ


рдореИрдВрдиреЗ рдПрдХ рдЬрдЯрд┐рд▓ рдпреЛрдЬрдирд╛ рдЪреБрдиреА:

  • рдореБрдЭреЗ рдХрдг рдХрдВрд╕реЛрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИ;
  • рдореИрдВ рдЙрдиреНрд╣реЗрдВ MySQL рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП Node.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

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

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛рд░реНрдб рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рд╡рд╛рдИ-рдлрд╛рдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрдо рд░рд╛рдЙрдЯрд░ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдПрдордХреНрдпреВрдЯреАрдЯреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рдХрдг рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рдмрд╣реБрдд рдпреЛрдЬрдирд╛: Node.js рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рдЬреЛ рдХрдг рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ MySQL рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИред

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

рдЕрдм рдЖрдЗрдП MySQL рдФрд░ JSON рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ JSON рдХреЗ рд╕рд╛рде MySQL 5.7 рд╕реЗ MySQL 8 рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдлрд┐рд░ рдореИрдВ рдПрдХ рдбреЗрдореЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдореИрдВ MySQL 8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ (рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд╕рдордп рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдЕрднреА рддрдХ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рдерд╛, рдПрдХ рд╕реНрдерд┐рд░ рд░рд┐рд▓реАрдЬ рдкрд╣рд▓реЗ рд╣реА рдЬрд╛рд░реА рдХреА рдЬрд╛ рдЪреБрдХреА рд╣реИ)ред

MySQL рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ


рдЬрдм рд╣рдо рд╕реЗрдВрд╕рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░рд╛ рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ MySQL рдореЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдирд╛ рд╣реИ :

CREATE TABLE 'sensor_wide' ( 'id' int (11) NOT NULL AUTO_INCREMENT, 'light' int (11) DEFAULT NULL, 'temp' double DEFAULT NULL, 'humidity' double DEFAULT NULL, PRIMARY KEY ('id') ) ENGINE=InnoDB 

рдпрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓рдо рд╣реИ: рдкреНрд░рдХрд╛рд╢, рддрд╛рдкрдорд╛рди, рдЖрд░реНрджреНрд░рддрд╛ред

рдпрд╣ рдХрд╛рдлреА рддрд╛рд░реНрдХрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдпрд╣ рд▓рдЪреАрд▓рд╛ рдирд╣реАрдВ рд╣реИ ред рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдо рдПрдХ рдФрд░ рд╕реЗрдВрд╕рд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдФрд░ рдорд╛рдкрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рд▓реЛрдЧ рдПрдХ рдХреЗрдЧ рдореЗрдВ рд╢реЗрд╖ рдмреАрдпрд░ рдХреЛ рдорд╛рдкрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?

 alter table sensor_wide add water level double ...; 

рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдмрд┐рдЧрд╛рдбрд╝рдирд╛ рд╣реИ? рдЖрдкрдХреЛ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдиреЗ MySQL рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рд╣реИ, рддреЛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ - рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред MySQL 8 рдФрд░ MariaDB рдореЗрдВ рдЕрд▓реНрдЯрд░ рдЯреЗрдмрд▓ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рдпрд╣ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рд╣рдореЗрдВ рдмреАрдпрд░ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХреЙрд▓рдо рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

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

рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдПрдХ рдХреБрдВрдЬреА / рдореВрд▓реНрдп рдХреА рджреБрдХрд╛рди рд╣реИред

MySQL рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг: рдХреБрдВрдЬреА / рдореВрд▓реНрдп


рдпрд╣ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реЛрдЧрд╛ : рдХреБрдВрдЬреА / рдореВрд▓реНрдп рдореЗрдВ рдПрдХ рдирд╛рдо рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд╛рдкрдорд╛рди рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдбреЗрдЯрд╛ред

 CREATE TABLE 'cloud_data' ( 'id' int (11) NOT NULL AUTO_INCREMENT, 'name' varchar(255) DEFAULT NULL, 'data' text DEFAULT NULL, 'updated_at' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP PRIMARY KEY ('id') ) ENGINE=InnoDB 

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

рдЖрдк рдХрдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реА рдирдИ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? - JSON рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

MySQL рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ: JSON


рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ MySQL 5.7 рдореЗрдВ рдЖрдк JSON рдХреЛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 CREATE TABLE 'cloud_data_json' ( 'id' int (11) NOT NULL AUTO_INCREMENT, 'name' varchar(255) DEFAULT NULL, 'data' JSON, 'updated_at' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP PRIMARY KEY ('id') ) ENGINE=InnoDB; 

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

рдПрдХрдорд╛рддреНрд░ рдорд╛рдореВрд▓реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рднрдВрдбрд╛рд░рдг рдХреЗ рджреМрд░рд╛рди рддрд╛рд▓рд┐рдХрд╛ рдЖрдХрд╛рд░ рдореЗрдВ рдмрдврд╝реЗрдЧреА ред рд▓реЗрдХрд┐рди рддрдм рд╣рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рдорд┐рд▓рддрд╛ рд╣реИред

JSON рдлрд╝реАрд▓реНрдб рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ JSON рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐:

  • рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рддреНрдпрд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рд╣рдо рдХреБрдЫ рдРрд╕рд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╣рд╛рдВ рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред
  • рдпрд╣ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рднрдВрдбрд╛рд░рдг рдкреНрд░рд╛рд░реВрдк рд╣реИ ред JSON рдХреЛ рдмрд╛рдЗрдирд░реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдПрдХ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рдЬрд┐рд╕реЗ рд╕реНрдХрд┐рдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

JSON рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрд╕ SQL тАЛтАЛрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдПрдХ INSERT рдмрдирд╛рдПрдВ, рд╡рд╣рд╛рдВ 'рдбреЗрдЯрд╛' рдбрд╛рд▓реЗрдВ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

 тАж stream.on('event', function(data) { var query = connection.query( 'INSERT INTO cloud_data_json (client_name, data) VALUES (?, ?)', ['particle', JSON.stringify(data)] ) тАж (demo) 

рдбреЗрдореЛ


рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ( рдпрд╣рд╛рдВ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдЗрд╕рдХреА рд╢реБрд░реБрдЖрдд) рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрд╕рдХреНрдпреВрдПрд▓ рд╣реЛрддрд╛ рд╣реИред



рдиреАрдЪреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИред



рдореИрдВ INSERT INTO cloud_data (name, data) рд╣реВрдВ, рдореБрдЭреЗ рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА JSON рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕реЗ рд╕реАрдзреЗ MySQL рдХреЛ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдВрджрд░ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗ рдмрд┐рдирд╛ред

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЗрд╕ рдХреНрд▓рд╛рдЙрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рди рдХреЗрд╡рд▓ рдореЗрд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЖрдорддреМрд░ рдкрд░ рд╡реЗ рд╕рднреА рдбреЗрдЯрд╛ рдЬреЛ рдЗрд╕ рдкрд╛рд░реНрдЯрд┐рдХрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЕрдм рддрдХ рдХрд╛ рдХрд╛рдо рд▓рдЧрддрд╛ рд╣реИред рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдкрд╛рд░реНрдЯрд┐рдХрд▓ рдлреЛрдЯреЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдХреБрдЫ рдбреЗрдЯрд╛ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ: рдЧреЗрд░рд╛рдЬ рдХрд╛ рджрд░рд╡рд╛рдЬрд╛ рдЦреБрд▓рд╛ рд╣реИ, рдпрд╛ рдмреАрдпрд░ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЗ рдРрд╕реЗ рд╣реИрдВ, рдпрд╛ рдХреБрдЫ рдФрд░ред рдпрд╣ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╣рд╛рдВ рд╕реНрдерд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЬрдм рдореБрдЭреЗ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХреБрдЫ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ: deviceId: 'mine' ред

рдЬрдм рд╣рдо рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдХрд┐рд╕реА рдФрд░ рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдХреБрдЫ рдбреЗрдЯрд╛ рдХреА рдПрдХ рдзрд╛рд░рд╛ рдорд┐рд▓рддреА рд╣реИ рдЬреЛ рдХреБрдЫ рдХрд░ рд░рд╣реА рд╣реЛрддреА рд╣реИред



рд╣рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдбреЗрдЯрд╛ рдХреНрдпрд╛ рд╣реИ: TTL, publish_at, coreid, door status (рджрд░рд╡рд╛рдЬрд╛ рдЦреБрд▓рд╛), рд░рд┐рд▓реЗ рдкрд░ред

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



рдХреГрдкрдпрд╛, рд╕рдм рдХреБрдЫ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рджреБрдХрд╛рди


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


MySQL 5.7 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ: рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рдПрдХ рдЕрд▓рдЧ рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рджреВрд╕рд░реЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Node.js (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ - PHP, рдЬрд╛рд╡рд╛, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП) рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ MySQL рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ JSON рдореЗрдВ рдХреНрдпрд╛ рд╣реИ - рджрд░рд╡рд╛рдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдпрд╛ рдХреБрдЫ рдФрд░, рдореИрдВ рд╕рд┐рд░реНрдл MySQL рдореЗрдВ рдбреЗрдЯрд╛ рдбрдВрдк рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рд╣рдо рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдВрдЧреЗред

 const mysqlx = require('@mysql/xdevapi*); // MySQL Connection var mySession = mysqlx.gctSession({ host: 'localhost', port: 33060, dbUser: 'photon* }); тАж session.getSchema("particle").getCollection("cloud_data_docstore") .add( data ) .execute(function (row) { }).catch(err => { console.log(err); }) .then( -Function (notices) { console.log("Wrote to MySQL") }); ...https://dev.mysql.com/doc/dev/connector-nodejs/ 

рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк MySQL 5.7 рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдЙрдЪрд┐рдд рдкреЛрд░реНрдЯ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рд╕реНрдЯреЛрд░ рдпрд╛ XI SII рдХреЛ рд╕рдордЭреЗ рдФрд░ рд╕реБрдиреЗред рдореИрдВрдиреЗ рдХрдиреЗрдХреНрдЯрд░-рдиреЛрдбрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

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



рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдЕрдЧрд▓рд╛ рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рдП?

MySQL рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ: JSON + indexes


JSON рдФрд░ MySQL 5.7 рдореЗрдВ рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ JSON рд╕реЗ рдлрд╝реАрд▓реНрдб рдХреЛ рдЦреАрдВрдЪ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ JSON_EXTRACT рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рдЪреАрдиреА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдЙрд╕ рдХреЙрд▓рдо рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ JSON рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рдФрд░ рдирд╛рдо рд╣рдорд╛рд░рд╛ рдлрд╝реАрд▓реНрдб рд╣реИред рдирд╛рдо, рдбреЗрдЯрд╛, publish_at - рдпрд╣ рд╣рдо рд╕рдм рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

 select data->>'$.name' as data_name, data->>'$.data' as data, data->>'$.published_at' as published from cloud_data_json order by data->'$.published_at' desc limit 10; 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ MySQL рдЯреЗрдмрд▓ рдкрд░ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ рдкрд┐рдЫрд▓реЗ 10 рд░рд┐рдХреЙрд░реНрдбред рдореИрдВ рдРрд╕рд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ ред

рддрд╛рд░реНрдХрд┐рдХ рддрд░реАрдХреЗ рд╕реЗ, MySQL рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╣рдо JSON рд╕реЗ рдбреЗрдЯрд╛ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдлрд╛рдЗрд▓рд╢реЙрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

 EXPLAIN select data->>'$.name' as data_name ... order by data->>'$.published_at' desc limit 10 select_type: SIMPLE table: cloud_data_json possible_keys: NULL key: NULL тАж rows: 101589 filtered: 100.00 Extra: Using filesort 

рдлрд╛рдЗрд▓рд╕реЙрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИ, рдпрд╣ рдПрдХ рдмрд╛рд╣рд░реА рдкреНрд░рдХрд╛рд░ рд╣реИред

рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП 2 рдХрджрдо рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдЯреЗрдк 1. рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдХреЙрд▓рдо рдмрдирд╛рдПрдВ


 mysql> ALTER TABLE cloud_data_json -> ADD published_at DATETIME(6) -> GENERATED ALWAYS AS (STR_TO_DATE(data->>'$.published_at',"%Y-%m-%dT%T.%fZ")) VIRTUAL; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 

рдореИрдВ EXTRACT рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╛рдиреА, рдореИрдВ JSON рд╕реЗ рдбреЗрдЯрд╛ рдЦреАрдВрдЪрддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореИрдВ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдХреЙрд▓рдо рдмрдирд╛рддрд╛ рд╣реВрдВред рд╡рд░реНрдЪреБрдЕрд▓ рдХреЙрд▓рдо MySQL 5.7 рдФрд░ MySQL 8 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реИ - рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЕрд▓рдЧ рдХреЙрд▓рдо рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред

рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рд╣реИ, рдЖрдкрдиреЗ рдХрд╣рд╛ рдХрд┐ ALTER TABLE рдЗрддрдирд╛ рд▓рдВрдмрд╛ рдСрдкрд░реЗрд╢рди рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдпрд╣ рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рд╡рд░реНрдЪреБрдЕрд▓ рдХреЙрд▓рдо рдмрдирд╛рдирд╛ рддреЗрдЬрд╝ рд╣реИ ред рд╡рд╣рд╛рдБ рд╡рд╣рд╛рдБ рдХрдо рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ MySQL рдореЗрдВ рд╕рднреА DDL рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдкрд░ рдПрдХ рддрд╛рд▓рд╛ рд╣реИред ALTER TABLE рдПрдХ рдХрд╛рдлреА рддреЗрдЬрд╝ рдСрдкрд░реЗрд╢рди рд╣реИ, рдФрд░ рдпрд╣ рдкреВрд░реА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╣рдордиреЗ рдпрд╣рд╛рдВ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдХреЙрд▓рдо рдмрдирд╛рдпрд╛ рд╣реИред рдореБрдЭреЗ рддрд╛рд░реАрдЦ рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ JSON рдореЗрдВ рдЗрд╕реЗ рдЖрдИрдПрд╕рдУ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ MySQL рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд┐рдиреНрди рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдХреЙрд▓рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕реЗ рдирд╛рдо рджрд┐рдпрд╛, рдЗрд╕реЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рджрд┐рдпрд╛ рдФрд░ рдХрд╣рд╛ рдХрд┐ рдореИрдВ рд╡рд╣рд╛рдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░реВрдВрдЧрд╛ред

рдореВрд▓ рдХреНрд╡реЗрд░реА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ publish_at рдФрд░ рдирд╛рдо рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Published_at рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдирд╛рдо рдЖрд╕рд╛рди рд╣реИ - рдмрд╕ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдХреЙрд▓рдо рдмрдирд╛рдПрдВред

 mysql> ALTER TABLE cloud_data_json -> ADD data_name VARCHAR(255) -> GENERATED ALWAYS AS (data->>'$.name') VIRTUAL; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 

рдЪрд░рдг 2. рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдирд╛


рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ, рдореИрдВ publish_at рдкрд░ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдмрдирд╛рддрд╛ рд╣реВрдВ рдФрд░ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ:

 mysql> alter table cloud_data_json add key (published_at); Query OK, 0 rows affected (0.31 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> explain select data_name, published_at, data->>'$.data' as data from cloud_data_json order by published_at desc limit 10\G table: cloud_data_json type: index possible_keys: NULL key: published_at key_len: 9 rows: 10 filtered: 100.00 Extra: Backward index scan 

рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ MySQL рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЕрдиреБрдХреВрд▓рди рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдбреЗрдЯрд╛ рдФрд░ рдирд╛рдо рдЕрдиреБрдХреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реИрдВред MySQL рдбреЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ publish_at рдкрд░ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдПрдХ рд╣реА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЪреАрдиреА STR_TO_DATE(data->>'$.published_at',"%Y-%m-%dT%T.%fZ") рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдмрдЬрд╛рдп рдХреНрд░рдо рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдП STR_TO_DATE(data->>'$.published_at',"%Y-%m-%dT%T.%fZ") ред MySQL рдЕрднреА рднреА рдпрд╣ рд╕рдордЭреЗрдЧрд╛ рдХрд┐ рдЗрд╕ рдХреЙрд▓рдо рдкрд░ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░реЗрдВред

рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореИрдВ рди рдХреЗрд╡рд▓ рдкреНрд░рдХрд╛рд╢рд┐рдд_рдд рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдмрд▓реНрдХрд┐ рдирд╛рдо рд╕реЗ рднреАред

 mysql> explain select data_name, published_at, data->>'$.data' as data from cloud_data_json order by published_at desc, data_name asc limit 10\G select_type: SIMPLE table: cloud_data_json partitions: NULL type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 101589 filtered: 100.00 Extra: Using filesort 

рдпрджрд┐ рдЖрдкрдХрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд╣рдЬрд╝рд╛рд░реЛрдВ рдШрдЯрдирд╛рдУрдВ рдХреА рджрд╕рд┐рдпреЛрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ publish_at рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рджреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реЛрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рд╣рдо data_name рджреНрд╡рд╛рд░рд╛ рдПрдХ рдФрд░ рдЫрдБрдЯрд╛рдИ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдЪреАрдЬреЛрдВ рдХреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╡реЗрд░реА рдирд╣реАрдВ рд╣реИ: рдореБрдЭреЗ рдЕрдВрддрд┐рдо 10 рдИрд╡реЗрдВрдЯ рджреЗрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рджрд┐рдирд╛рдВрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрдВрддрд┐рдо рдирд╛рдо рд╕реЗред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рджреЛ рдлрд╝реАрд▓реНрдб рд╣реИрдВ рдФрд░ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рдХреБрдВрдЬреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЧрдИ рд╣реИ: рдЕрд╡рд░реЛрд╣реА рдФрд░ рдЖрд░реЛрд╣реАред

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

MySQL 8.0 рдореЗрдВ рдирдпрд╛


рдЙрддрд░рдирд╛ / рдЪрдврд╝рдирд╛


MySQL 5.7 рдореЗрдВ, рдРрд╕реА рдХреНрд╡реЗрд░реА рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрджрд┐ рдХреЗрд╡рд▓ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреА рдХреАрдордд рдкрд░ред MySQL 8 рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдЫрдБрдЯрд╛рдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрд╡рд╕рд░ рдерд╛ред

 mysql> alter table cloud_data_json add key published_at_data_name (published_at desc, data_name asc); Query OK, 0 rows affected (0.44 sec) Records: 0 Duplicates: 0 Warnings: 0 

рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдирд╛рдо рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ SQL рдореЗрдВ рдЖрдиреЗ рдХреЗ рдмрд╛рдж рдЕрд╡рд░реЛрд╣реА / рдЖрд░реЛрд╣реА рдХреБрдВрдЬреА рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ MySQL 3.23 рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЖрдк publish_at рдЕрд╡рд░реЛрд╣реА рдпрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд_at рдЖрд░реЛрд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред MySQL рдиреЗ рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ , рдЕрд░реНрдерд╛рдд рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рджрд┐рд╢рд╛ рдореЗрдВ рдХреНрд░рдордмрджреНрдз рд╣реЛрддрд╛ рдерд╛ред

MySQL 8 рдореЗрдВ, рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдм рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдЖрдк рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЙрд░реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝реАрд▓реНрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЗрдП рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░ рдЪрд░рдг 2 рд╕реЗ рдлрд┐рд░ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред

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

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

 mysql> explain select data_name, published_at, data->>'$.data' as data from cloud_data_json order by published_at desc limit 10\G select_type: SIMPLE table: cloud_data_json partitions: NULL type: index possible_keys: NULL key: published_at_data_name key_len: 267 ref: NULL rows: 10 filtered: 100.00 Extra: NULL 

рдпрд╣ MySQL 8 рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдЬреЛ рдЕрдм рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд╕рдордп, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред

рдЖрдЙрдЯрдкреБрдЯ рдкрд░рд┐рдгрд╛рдо


рджреЛ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдореИрдВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:

1. рд╕реБрдВрджрд░ рдкреНрд░рд┐рдВрдЯ, рдпрд╛рдиреА рд╕реНрдХреНрд░реАрди рдкрд░ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╕реБрдВрджрд░ рдЖрдЙрдЯрдкреБрдЯред рд╕рд╛рдорд╛рдиреНрдп рдЪрдпрди рдХреЗ рд╕рд╛рде, JSON рдлреЙрд░реНрдореЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

 mysql> select json_pretty(data) from cloud_data_json where data->>'$.data' like '%beer%' limit 1\G тАж json_pretty(data): { "ttl": 60, "data": "FvGav,tagkey=beer-store spFridge=7.00,pvFridge=7.44", "name": "LOG_DATA_DEBUG", "coreid": "3600....", "published_at": "2017-09-28T18:21:16.517Z" } 

2. рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ MySQL рдкрд░рд┐рдгрд╛рдо рдХреЛ JSON рд╕рд░рдгреА рдпрд╛ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛, рдлрд╝реАрд▓реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рдЖрдЙрдЯрдкреБрдЯ JSON рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

JSON рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рдЕрдВрджрд░ рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ


рдпрджрд┐ рд╣рдо рдПрдХ рд▓рдЪреАрд▓реА рднрдВрдбрд╛рд░рдг рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд╣рдорд╛рд░реЗ JSON рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ, рддреЛ рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рдХреА рдЕрдкрдиреА рд╕реАрдорд╛рдПрдБ рд╣реИрдВ ред рдореИрдВрдиреЗ рдЬреЛ рдкрд╣рд▓реА рдХреЛрд╢рд┐рд╢ рдХреА, рд╡рд╣ рдереА рдлреБрд▓-рдЯреЗрдХреНрд╕реНрдЯ рдХреАред рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА:

 mysql> alter table cloud_data_json_indexes add fulltext key (data); ERROR 3152 (42000): JSON column 'data' supports indexing only via generated columns on a specified ISON path. 

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ MySQL 8 рдореЗрдВ, JSON рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдмрд╕ рдПрдХ рдкреВрд░реНрдг-рдкрд╛рда рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдирд╛ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реИред рдмреЗрд╢рдХ, рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - JSON рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдХрдо рд╕реЗ рдХрдо рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред

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

 mysql> ALTER TABLE cloud_data_json_indexes -> ADD data_data VARCHAR(255) -> GENERATED ALWAYS AS (data->>'$.data') VIRTUAL; Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> alter table cloud_data_json_indexes add fulltext key ft_json(data_name, data_data); ERROR 3106 (HY000): 'Fulltext index on virtual generated column' is not supported for generated columns. 

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдпрд╛ рддреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдЖрдк рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдХреЙрд▓рдо рдкрд░ рдПрдХ рдкреВрд░реНрдг-рдкрд╛рда рдЗрдВрдбреЗрдХреНрд╕ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ ред

рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреЙрд▓рдо рдмрдирд╛рдПрдБред MySQL 5.7 рдЖрдкрдХреЛ рдПрдХ рдХреЙрд▓рдо рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдлрд╝реАрд▓реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
 mysql> ALTER TABLE cloud_data_json_indexes -> ADD data_name VARCHAR(255) CHARACTER SET UTF8MB4 -> GENERATED ALWAYS AS (data->>'$.name') STORED; Query OK, 123518 rows affected (1.75 sec) Records: 123518 Duplicates: 0 Warnings: 0 mysql> alter table cloud_data_json_indexes add fulltext key ft_json(data_name); Query OK, 0 rows affected, 1 warning (3.78 sec) Records: 0 Duplicates: 0 Warnings: 1 mysql> show warnings; +------------+--------+---------------------------------------------------+ | Level | Code | Message | +------------+--------+---------------------------------------------------+ | Warning | 124 | InnoDB rebuilding table to add column FTS_DOC_ID | +------------+--------+---------------------------------------------------+ 

рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рд╣рдордиреЗ рд╡рд░реНрдЪреБрдЕрд▓ рдХреЙрд▓рдо рдмрдирд╛рдП рдЬреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдиреБрдХреНрд░рдорд┐рдд рдмрдирд╛рдП рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ MySQL рдХреЛ рдмрддрд╛рдирд╛ рдерд╛ рдХрд┐ рдпрд╣ рдПрдХ STORED рдХреЙрд▓рдо рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЙрдкреА рдХрд░ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, MySQL рдиреЗ рдПрдХ рдкреВрд░реНрдг-рдкрд╛рда рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдпрд╛, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдкрдбрд╝рд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕реАрдорд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ InnoDB рдФрд░ InnoDB рдкреВрд░реНрдг рдЦреЛрдЬ рд╣реИ: рдЖрдкрдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред

рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ MySQL 8 рдореЗрдВ рдЗрдореЛрдЯрд┐рдХреЙрдиреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ UTF8 MB4 рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдерд╛ред рдмреЗрд╢рдХ, рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ UTF8MB3 рдореЗрдВ рд░реВрд╕реА, рдЪреАрдиреА, рдЬрд╛рдкрд╛рдиреА рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред

 mysql> ALTER TABLE cloud_data_json_indexes -> ADD data_data TEXT CHARACTER SET UTF8MB4 -> GENERATED ALWAYS AS ( CONVERT(data->>'$.data' USING UTF8MB4) ) STORED Query OK, 123518 rows affected (3.14 sec) Records: 123518 Duplicates: 0 Warnings: 0 

рддрджрдиреБрд╕рд╛рд░, MySQL 8 рдХреЛ JSON рдбреЗрдЯрд╛ рдХреЛ UTF8MB4 рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ Node.js рдбрд┐рд╡рд╛рдЗрд╕ рдХреНрд▓рд╛рдЙрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рдХреБрдЫ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрдЧ рд╣реИ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реБрдЖред рдЗрд╕рд▓рд┐рдП, рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреЙрд▓рдо рдореЗрдВ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ред

 mysql> ALTER TABLE cloud_data_json_indexes DROP KEY ft_json, ADD FULLTEXT KEY ft_json(data_name, data_data); Query OK, 0 rows affected (1.85 sec) Records: 0 Duplicates: 0 Warnings: 0 

рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВ рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдкрд░ рдПрдХ рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛: JSON рдирд╛рдо рдкрд░ рдФрд░ JSON рдбреЗрдЯрд╛ рдкрд░ред

рди рдХреЗрд╡рд▓ IoT


JSON рдХреЗрд╡рд▓ рдЪреАрдЬреЛрдВ рдХрд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рд░реЛрдЪрдХ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдХрд╕реНрдЯрдо рдлрд╝реАрд▓реНрдб (CMS);
  • рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛рдПрдВ, рдЖрджрд┐;

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



рдпрд╣ рдПрдХ рдРрд╕рд╛ рдкреЗрдбрд╝ рд╣реИ рдЬрд┐рд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреБрдЫ рд╕рд╛рд▓ рдмрд╛рдж, рд╣рд┐рд░рдг рдиреЗ рдЗрд╕реЗ рдЦрд╛рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИред

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

рд╕рдореНрдореЗрд▓рди рдХреА рдХреЗрдВрджреНрд░реАрдп рдШрдЯрдирд╛, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЧреЛрд▓ рдореЗрдЬ рд╣реЛрдЧрд╛ "рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдСрдл рдерд┐рдВрдЧреНрд╕ рдкрд░ рд░рд╛рд╖реНрдЯреНрд░реАрдп рдорд╛рдирдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?", рдЬрд┐рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпрд╛рдкрдХ рд▓рд╛рдЧреВ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХрд╛ рднрд╛рд░реА рд▓реЛрдб рд╕рд┐рд╕реНрдЯрдо рд╕рд╣реА рдврдВрдЧ рд╕реЗ IIoT рдкрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рддреЛ рдЖрдУред

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


All Articles