Optimerade prestandan för Java JDBC:s rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries och sslMode-konfigurationer.
jdbc All Configuration Properties Dokumentation:Inloggningen med hyperlänken är synlig.
Recension:
allowPublicKeyRetrieval
När du använder MySQL 8.0, efter att ha startat om appen, får du uppmaningen com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval är inte tillåten
Den enklaste lösningen är att lägga till den efter anslutningenallowPublicKeyRetrieval=true
Om användaren använder sha256_password autentisering måste lösenordet skyddas under överföring med TLS-protokollet, men om RSA:s publika nyckel inte är tillgänglig kan den publika nyckel som servern tillhandahåller användas; Den publika RSA-nyckeln för servern kan specificeras i anslutningen via ServerRSAPublicKeyFile, eller parametern AllowPublicKeyRetrieval=True för att låta klienten få den publika nyckeln från servern; Det bör dock noteras att AllowPublicKeyRetrieval=True kan få illvilliga agenter att få klartextlösenord genom man-in-the-middle-attacker (MITM), så det är avstängt som standard och måste vara explicit aktiverat.
rewriteBatchedStatements
För att uppnå högpresterande batchinsättning genom att lägga till parametern rewriteBatchedStatements i URL:en för JDBC-anslutningen i MySQL och säkerställa att drivrutinsversionen 5.1.13 eller senare garanteras. Som standard ignorerar MySQL JDBC-drivrutinen executeBatch()-satsen, delar upp en uppsättning SQL-satser som vi förväntar oss att köras i batcher och skickar dem till MySQL-databasen en efter en. Endast genom att sätta parametern rewriteBatchedStatements till true kommer drivrutinen att köra SQL i batcher Detta alternativ gäller även för INFOGA/UPPDATERA/TA BORT
Som standard ignorerar MySQL Jdbc-drivrutinen executeBatch()-satsen, delar upp en uppsättning SQL-satser som vi förväntar oss köra i batcher, och skickar dem till MySQL-databasen en efter en, vilket direkt orsakar låg prestanda.
Endast genom att sätta parametern rewriteBatchedStatements till true hjälper drivrutinen dig att köra SQL i bulk (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)
allowMultiQueries
Tillstånd att använda'; ' Separerar flera frågor (sann/falsk) i ett påstående. Standardvärdet är "false", vilket inte påverkar metoderna addBatch() och executeBatch(), som är beroende av rewriteBatchStatements.
När MySQL ansluter till en databas, lägg till satsen:"allowMultiQueries=trueRollen för ":
1. Du kan ha ett semikolon efter SQL-satsen för att uppnå multi-statement exekvering. 2. Batchbearbetning kan utföras och flera SQL-satser kan utfärdas samtidigt.
sslMode
Som standard är nätverksanslutningar SSL-krypterade; Denna egenskap låter dig stänga av den säkra anslutningen eller välja en annan säkerhetsnivå. Följande värden är tillåtna: "DEPRIMERAD" – en okrypterad anslutning upprättas; "FÖREDRAGEN" - (standard) Om servern aktiverar krypterade anslutningar upprättas en krypterad anslutning, annars återgår den till en okrypterad anslutning; "KRÄVS" – Upprätta en säker anslutning om servern har aktiverat den, annars misslyckas det; "VERIFY_CA" – Liknande "REQUIRED", men validerar dessutom serverns TLS-certifikat mot det konfigurerade certifikatutverkningscertifikatet (CA); "VERIFY_IDENTITY" – som "VERIFY_CA",
Denna attribut ersätter de föråldrade gamla attributen "useSSL", "requireSSL" och "verifyServerCertificate", vilka fortfarande accepteras men konverteras till värdet "sslMode" om "sslMode" inte uttryckligen är satt: "useSSL=false" konverteras till "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} översätts som "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} översätts som "sslMode=REQUIRED"; {"useSSL=true" OCH "verifyServerCertificate=true"} översätts till "Standardinställningen för "sslMode" är "FÖREDRAGEN", vilket motsvarar de traditionella inställningarna "useSSL=true", "requireSSL=false" och "verifyServerCertificate=false", vilket är samma som Connector/ Standardinställningarna för J 8.0.12 och tidigare versioner är annorlunda i vissa fall. Applikationer som fortsätter att använda de gamla attributen och förlitar sig på deras gamla standardinställningar bör granskas. Standardinställningen för "sslMode" är "FÖREDRAGEN", vilket motsvarar de traditionella inställningarna "useSSL=true", "requireSSL=false" och "verifyServerCertificate=false", vilket skiljer sig från standardinställningen för Connector/J 8.0.12 och tidigare i vissa fall. Applikationer som fortsätter att använda de gamla attributen och förlitar sig på deras gamla standardinställningar bör granskas. I vissa fall är det 12 eller tidigare. Applikationer som fortsätter att använda de gamla attributen och förlitar sig på deras gamla standardinställningar bör granskas. I vissa fall är det 12 eller tidigare. Applikationer som fortsätter att använda de gamla attributen och förlitar sig på deras gamla standardinställningar bör granskas.
Om "sslMode" uttryckligen sätts ignoreras den gamla egenskapen. Om "sslMode" eller "useSSL" inte är explicit inställd, tillämpas standardinställningen "sslMode=PREFERRED".
JDBC-inställningar för att stänga av säkra anslutningar:sslmode=inaktiverad
|