ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ 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Β», Β«<=ANYΒ», Β«>ALLΒ», Β«>=ALLΒ», Β«<ALLΒ» ΠΈ Β«<=ALLΒ».
- Π£Π΄Π°Π»ΡΠ½ ΠΏΠ»Π°Π³ΠΈΠ½ Β«version_tokensΒ», ΡΠ°Π½Π΅Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΠΉ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ.
- ΠΠ°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0 Π² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ replica_parallel_workers.
- Π£ΡΡΡΠ°Π½Π΅Π½ΠΎ 28 ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ 26 ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π‘Π£ΠΠ. Π¨Π΅ΡΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΡΠ·Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈΠΌΠ΅ΡΡ ΡΡΠΎΠ²Π΅Π½Ρ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ 6.5 ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠΌΠΈ Π² Π΄Π²ΠΈΠΆΠΊΠ΅ InnoDB, ΠΏΠ°ΡΡΠ΅ΡΠ΅ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡΠ΅. ΠΠ΅Π½Π΅Π΅ ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡ mysqldump, InnoDB, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ, DDL, UDF, ΠΏΠ°ΡΡΠ΅Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru