ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Oracle ΡΡΠ·Π΄Π°Π΄Π΅ Π½ΠΎΠ² ΠΊΠ»ΠΎΠ½ Π½Π° Π‘Π£ΠΠ MySQL 9.3.0. Π‘Π±ΠΎΡΠΊΠΈΡΠ΅ MySQL Community Server 9.3.0 ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π½Π° Linux, FreeBSD, macOS ΠΈ Windows. Π ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ Π½ΠΎΠ²Π°ΡΠ° ΠΌΠΎΠ΄Π΅Π»Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈΠ·ΠΈ, Π²Π½Π΅Π΄ΡΠ΅Π½Π° ΠΏΡΠ΅Π· 2023 Π³ΠΎΠ΄ΠΈΠ½Π°, MySQL 9.3 Π΅ ΠΎΡΠ½Π΅ΡΠ΅Π½ ΠΊΡΠΌ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ΡΠ΅ βInnovationβ. ΠΠ»ΠΎΠ½ΠΎΠ²Π΅ΡΠ΅ Innovation ΡΠ° ΠΏΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π½ΠΈ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ ΠΏΠΎ-ΡΠ°Π½ΠΎ Π΄ΠΎ Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠΈ, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ ΡΠ΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ 3 ΠΌΠ΅ΡΠ΅ΡΠ° ΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ°ΠΌΠΎ Π΄ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΎΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΠΊΠ»ΠΎΠ½Π° 9.3, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΊΠ»ΠΎΠ½Π° 9.2 Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°). ΠΡΡΠΎΡΠΎ Π΅ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° LTS-ΡΠ΅Π»ΠΈΠ· 9.4, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°Π½ Π·Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡ ΠΈ Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠΠ΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ LTS-ΠΊΠ»ΠΎΠ½Π° ΡΠ΅ Π±ΡΠ΄Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π½ΠΎΠ² Innovation-ΠΊΠ»ΠΎΠ½ - MySQL 10.0.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² MySQL 9.3:
- Π ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° mysqldump Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΎΠΏΡΠΈΡ Β«βusersΒ» Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΡΠΌΠΏΠΎΠ²Π΅ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ Π°ΠΊΠ°ΡΠ½ΡΠΈ, ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π° ΡΡΠ΅Π· SQL ΠΈΠ·ΡΠ°Π·ΠΈ Β«CREATE USERΒ» ΠΈ Β«GRANTΒ». ΠΠ° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΈΠ·ΡΠ°Π·Π° Β«DROP USERΒ» ΠΏΡΠ΅Π΄ Β«CREATE USERΒ» Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π° ΠΎΠΏΡΠΈΡ Β«βadd-drop-userΒ», Π° Π·Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡΡΠ°Π·ΡΠ²Π°Π½Π΅ Π² Π΄ΡΠΌΠΏΠ° Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ β ΠΎΠΏΡΠΈΠΈ Β«βinclude-user=user@hostΒ» ΠΈ Β«βexclude-user=user@hostΒ», ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΡΠΈ.
- Π Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ MLE (Multilingual Engine Component), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ Π½Π° Π΅Π·ΠΈΡΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡ SQL, Π² Ρ ΡΠ°Π½ΠΈΠΌΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° JavaScript. ΠΠ° Ρ ΡΠ°Π½ΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ Π½Π° JavaScript Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠΈΠΏ Β«DECIMALΒ», ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π²Ρ ΠΎΠ΄ΡΡΠΈ ΠΈ Π²ΡΡΡΠ°Π½ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ, MySQL ΡΠΈΠΏΡΡ DECIMAL ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π° Π² JavaScript ΡΠΈΠΏ Β«StringΒ», Π½ΠΎ ΡΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βSELECT mle_set_session_state(β{βdecimal_typeβ:βNumberβ}β)β, ΡΠ»Π΅Π΄ ΠΊΠΎΡΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ JavaScript ΡΠΈΠΏ Β«NumberΒ». ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ ΠΊΡΠΌ DECIMAL ΡΠΈΠΏ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Ρ JavaScript ΡΠΈΠΏΠΎΠ²Π΅ Boolean, Number, String ΠΈ BigInt.
- Π Ρ ΡΠ°Π½ΠΈΠΌΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ Π½Π° JavaScript Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ JavaScript API Intl. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° Β«Intl.DateTimeFormat().resolvedOptions().localeΒ», Π° Π·Π° ΠΏΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° β ΠΌΠ΅ΡΠΎΠ΄ΡΡ Β«toLocaleString().Β»
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ JavaScript: Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠΏΠΈΡΡΠΊΠ° Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ·ΡΠ°Π·ΡΡ Β«ALTER PROCEDUREΒ» ΠΈ Β«ALTER FUNCTIONΒ». ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠ°Π·Π° Β«ALTER LIBRARYΒ» Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅, ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° SQL-ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ ΠΊΡΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°. ΠΠ° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΈΠ·ΡΠ°Π·ΡΡ Β«SHOW LIBRARY STATUSΒ».
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ ΠΈΠΌΠΏΠΎΡΡ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° Β«awaitΒ», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Β«let module = await import(β/db1/lib_${object_type}β)Β».
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ ΠΊΠ²Π°Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈ Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. ΠΡΠ²Π΅Π½ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈΡΠ΅ Β«=ANYΒ» ΠΈ Β«ALLΒ» ΠΏΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠΎΠ΄Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ, Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΈΡΠ΅ Β«>ANYΒ», Β«>=ANYΒ», Β«<ANYΒ», Β«ALLΒ», Β«>=ALLΒ», Β«<ALLΒ» ΠΈ Β«<=ALLΒ».
- ΠΠ»ΡΠ³ΠΈΠ½ΡΡ Β«version_tokensΒ» Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π±Π΅ΡΠ΅ ΠΎΠ±ΡΠ²Π΅Π½ Π·Π° ΠΎΡΡΠ°ΡΡΠ».
- ΠΠ°Π±ΡΠ°Π½Π΅Π½ΠΎ Π΅ Π·Π°Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ 0 Π² ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° replica_parallel_workers.
- ΠΡΡΡΡΠ°Π½Π΅Π½ΠΈ ΡΠ° 28 ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ 26 ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΠ°Π½ΠΈ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ Π΄ΠΎ Π‘Π£ΠΠ. Π¨Π΅ΡΡΡΠ΅ Π½Π°ΠΉ-ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΠΌΠ°Ρ Π½ΠΈΠ²ΠΎ Π½Π° ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ 6.5 ΠΈ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² ΠΈΠ½ΠΆΠΈΠ½ΠΎΡΠΎ InnoDB, ΠΏΠ°ΡΡΠ΅ΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ°. ΠΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΠΏΠ°ΡΠ½ΠΈΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π·Π°ΡΡΠ³Π°Ρ mysqldump, InnoDB, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ°, DDL, UDF, ΠΏΠ°ΡΡΠ΅ΡΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
