Оптимизира производителността на конфигурациите на Java JDBC за преписане на BatchedStatements, allowPublicKeyRetrieval, allowMultiQueries и sslMode.
Документация за всички конфигурационни свойства на JDBC:Входът към хиперлинк е видим.
Преглед:
allowPublicKeyRetrieval
При използване на MySQL 8.0, след рестартиране на приложението, ви се казва com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Не е позволено извличане на публичен ключ
Най-лесното решение е да го добавиш след свързванетоallowPublicKeyRetrieval=true
Ако потребителят използва sha256_password автентикация, паролата трябва да бъде защитена при транзит чрез TLS протокола, но ако RSA публичен ключ не е наличен, може да се използва публичният ключ, предоставен от сървъра; RSA публичният ключ на сървъра може да бъде заказан в връзката чрез ServerRSAPublicKeyFile или параметъра AllowPublicKeyRetrieval=True, за да позволи на клиента да получи публичния ключ от сървъра; Въпреки това, трябва да се отбележи, че AllowPublicKeyRetrieval=True може да накара злонамерени агенти да получават пароли с открит текст чрез атаки "човек в средата" (MITM), затова тя е изключена по подразбиране и трябва да бъде изрично активирана.
rewriteBatchedStatements
За да се постигне високопроизводително партидно вмъкване чрез добавяне на параметъра rewriteBatchedStatements към URL адреса на JDBC връзката в MySQL и гарантиране, че версия на драйвера 5.1.13 или по-нова е гарантирана. По подразбиране драйверът MySQL JDBC игнорира оператора executeBatch(), разделя набор от SQL оператори, които очакваме да изпълняват на партиди, и ги изпраща едно по едно в MySQL базата данни. Само като зададете параметъра rewriteBatchedStatements на true, драйверът ще изпълни SQL на партиди Тази опция е валидна и за INSERT/UPDATE/DELETE
По подразбиране драйверът на MySQL Jdbc игнорира оператора executeBatch(), разделя набор от SQL оператори, които очакваме да изпълняват на партиди, и ги изпраща едно по едно в MySQL базата данни, което директно води до ниска производителност.
Само като зададеш параметъра rewriteBatchedStatements на true, драйверът ще ти помогне да изпълниш SQL масово (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)
allowMultiQueries
Разрешение за използване'; ' Разделя множество заявки (вярно/невярно) в едно твърдение. По подразбиране стойността е "false", което не влияе на методите addBatch() и executeBatch(), които зависят от rewriteBatchStatements.
Когато MySQL се свърже с база данни, добавете формулировката:"allowMultiQueries=trueРолята на ":
1. Можете да поставите точка и запетая след SQL оператора, за да постигнете изпълнение с няколко оператора. 2. Може да се извършва пакетна обработка и да се издават няколко SQL оператора едновременно.
sslMode
По подразбиране мрежовите връзки са криптирани чрез SSL; Това свойство ви позволява да изключите сигурната връзка или да изберете различно ниво на сигурност. Позволени са следните стойности: "DISABLED" – установява се некриптирана връзка; "PREFERRED" - (по подразбиране) Ако сървърът позволи криптирани връзки, се установява криптирана връзка, в противен случай връзката се връща към некриптирана; "ЗАДЪЛЖИТЕЛНО" - Установете сигурна връзка, ако сървърът я е активирал, в противен случай тя се проваля; "VERIFY_CA" - Подобно на "REQUIRED", но допълнително валидира TLS сертификата на сървъра спрямо конфигурирания сертифициращ орган (CA); "VERIFY_IDENTITY" - като "VERIFY_CA",
Този атрибут заменя остарелите стари атрибути "useSSL", "requireSSL" и "verifyServerCertificate", които все още се приемат, но се конвертират в стойността на "sslMode", ако "sslMode" не е изрично зададено: "useSSL=false" се преобразува в "sslMode=изключено"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} се превежда като "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} се превежда като "sslMode=REQUIRED"; {"useSSL=true" И "verifyServerCertificate=true"} се превежда като "Стандартната настройка за "sslMode" е "PREFERRED", което е еквивалентно на традиционните настройки "useSSL=true", "requireSSL=false" и "verifyServerCertificate=false", които са същите като Connector/ Стандартните настройки за J 8.0.12 и по-ранните версии са различни в някои случаи. Приложенията, които продължават да използват старите атрибути и разчитат на старите си стандарти, трябва да бъдат прегледани. Стандартната настройка за "sslMode" е "PREFERRED", което е еквивалентно на традиционните настройки "useSSL=true", "requireSSL=false" и "verifyServerCertificate=false", което в някои случаи се различава от стандартната настройка за Connector/J 8.0.12 и по-ранни. Приложенията, които продължават да използват старите атрибути и разчитат на старите си стандарти, трябва да бъдат прегледани. В някои случаи е 12 или по-рано. Приложенията, които продължават да използват старите атрибути и разчитат на старите си стандарти, трябва да бъдат прегледани. В някои случаи е 12 или по-рано. Приложенията, които продължават да използват старите атрибути и разчитат на старите си стандарти, трябва да бъдат прегледани.
Ако "sslMode" е изрично зададено, старото свойство се игнорира. Ако "sslMode" или "useSSL" не са изрично зададени, се прилага стандартната настройка "sslMode=PREFERRED".
Настройки на JDBC за изключване на защитените връзки:sslmode=disabled
|