ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Oracle ΡΡΠ·Π΄Π°Π΄Π΅ Π½ΠΎΠ² ΠΊΠ»ΠΎΠ½ Π½Π° Π‘Π£ΠΠ MySQL 9.0.0. Π‘ΡΠ±ΡΠ°Π½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° MySQL Community Server 9.0.0 ΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π½Π° Linux, FreeBSD, macOS ΠΈ Windows. Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π²Π½Π΅Π΄ΡΠ΅Π½Π°ΡΠ° ΠΌΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΌΠΎΠ΄Π΅Π» Π½Π° ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈΠ·ΠΈΡΠ΅, MySQL 9.0 Π΅ ΠΎΡΠ½Π΅ΡΠ΅Π½ ΠΊΡΠΌ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ΡΠ΅ Β«InnovationΒ», ΠΊΡΠΌ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ ΠΈ ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅Π»ΠΈΠ·ΠΈ MySQL 9.1 ΠΈ 9.2. ΠΠ»ΠΎΠ½ΠΎΠ²Π΅ΡΠ΅ Π½Π° Innovation ΡΠ° ΠΏΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π½ΠΈ Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΆΠ΅Π»Π°ΡΡ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½ΠΎΠ²ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠΈ ΠΏΠΎ-ΡΠ°Π½ΠΎ, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ ΡΠ΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ 3 ΠΌΠ΅ΡΠ΅ΡΠ° ΠΈ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ°ΠΌΠΎ Π΄ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΡΠ΅Π»ΠΈΠ· (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΠΊΠ»ΠΎΠ½Π° 9.1, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΊΠ»ΠΎΠ½Π° 9.0 ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°). ΠΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Ρ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π°Ρ LTS-ΡΠ΅Π»ΠΈΠ·, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ°Π½ Π·Π° Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡ ΠΈ Π΄ΡΠ»Π³ΠΎΡΡΠ°ΠΉΠ½ΠΎ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π‘Π»Π΅Π΄ LTS-ΠΊΠ»ΠΎΠ½Π° ΡΠ΅ Π±ΡΠ΄Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π½ΠΎΠ² ΠΊΠ»ΠΎΠ½ Π½Π° Innovation β MySQL 10.0.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² MySQL 9.0:
- ΠΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° Β«EXPLAIN ANALYZE INTOΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Ρ
ΠΎΠ΄Π° Π² JSON ΡΠΎΡΠΌΠ°Ρ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠ° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, ΠΊΠΎΡΡΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ JSON.
EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt
- Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΎ Π΅ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΈΠ·ΡΠ°Π·ΠΈΡΠ΅ Β«CREATE EVENTΒ», Β«ALTER EVENTΒ» ΠΈ Β«DROP EVENTΒ» ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π°ΡΠ²ΠΊΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠ°Π·Π° PREPARE, Π° Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ β Ρ ΠΈΠ·ΡΠ°Π·Π° EXECUTE.
CREATE PROCEDURE sp(n INT)
BEGIN
SET @s1 = Β«CREATE EVENT e ON SCHEDULE EVERY Β«;
SET @s2 = Β» SECOND
STARTS CURRENT_TIMESTAMP + INTERVAL 10 SECOND
ENDS CURRENT_TIMESTAMP + INTERVAL 2 MINUTE
ON COMPLETION PRESERVE
DO
INSERT INTO d.t VALUES ROW(NULL, NOW(), FLOOR(RAND()*100))Β»;SET @s = CONCAT(@s1, n, @s2);
PREPARE ps FROM @s;
EXECUTE ps;
DEALLOCATE PREPARE ps;
END - ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π΄Π²Π΅ Π½ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ: variables_metadata β ΡΡΠ΄ΡΡΠΆΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΈΠΌΠ΅Π½Π°ΡΠ°, ΠΎΠ±Ρ Π²Π°ΡΠΈΡΠ΅, ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈΡΠ΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ΠΈ ΠΎΡ MySQL ΡΡΡΠ²ΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ; global_variable_attributes β ΡΡΠ΄ΡΡΠΆΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° Π°ΡΡΠΈΠ±ΡΡΠΈΡΠ΅, Π·Π°Π΄Π°Π΄Π΅Π½ΠΈ Π·Π° Π³Π»ΠΎΠ±Π°Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠ°ΡΠΎ offline_mode ΠΈ read_only.
- ΠΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ Π΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΎΠ±ΡΠ²Π΅Π½ΠΈΡΡ Π·Π° ΠΎΡΡΠ°ΡΡΠ» ΡΡΡΠ²ΡΡΠ΅Π½ ΠΏΠ»ΡΠ³ΠΈΠ½ mysql_native_password, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Ρ ΠΏΠ°ΡΠΎΠ»ΠΈ. ΠΠΌΠ΅ΡΡΠΎ mysql_native_password ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΊΡΠΌ ΠΏΠ»ΡΠ³ΠΈΠ½Π° caching_sha2_password, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° SHA2 Π·Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ Π²ΠΌΠ΅ΡΡΠΎ SHA1.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° 15 ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΈ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ MLE (Multilingual Engine Component), ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ Π½Π° Π΅Π·ΠΈΡΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡ SQL, Π² ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
