Оптимизирована производительность конфигураций Java JDBC rewriteBatchedStatements, 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 может привести к тому, что злоумышленники получают открытые пароли посредством атак man-in-the-middle (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
Разрешение на использование'; ' Разделяет несколько запросов (true/false) в одном утверждении. Значение по умолчанию — «false», которое не влияет на методы addBatch() и executeBatch(), которые зависят от rewriteBatchStatements.
Когда MySQL подключается к базе данных, добавьте оператор:allowMultiQueries=trueРоль ":
1. После SQL-оператора можно поставить точку с запятой, чтобы добиться выполнения нескольких операторов. 2. Можно выполнять пакетную обработку и одновременно выпускать несколько SQL-операторов.
sslMode
По умолчанию сетевые соединения зашифрованы SSL; Это свойство позволяет отключить защищённое соединение или выбрать другой уровень безопасности. Допускаются следующие значения: «ОТКЛЮЧЕНО» — устанавливается незашифрованное соединение; «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=отключён
|