Optimerede ydeevnen af Java JDBC's rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries og sslMode-konfigurationer.
jdbc Dokumentation for alle konfigurationsegenskaber:Hyperlink-login er synlig.
Anmeldelse:
allowPublicKeyRetrieval
Når du bruger MySQL 8.0, bliver du efter genstart af appen bedt om com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval er ikke tilladt
Den nemmeste løsning er at tilføje den efter forbindelsenallowPublicKeyRetrieval=true
Hvis brugeren bruger sha256_password autentificering, skal adgangskoden beskyttes under transport ved hjælp af TLS-protokollen, men hvis RSA's offentlige nøgle ikke er tilgængelig, kan den offentlige nøgle, som serveren leverer, bruges; Serverens RSA-offentlige nøgle kan angives i forbindelsen via ServerRSAPublicKeyFile eller parameteren AllowPublicKeyRetrieval=True, så klienten kan hente den offentlige nøgle fra serveren; Det skal dog bemærkes, at AllowPublicKeyRetrieval=True kan få ondsindede agenter til at få klartekstadgangskoder gennem man-in-the-middle-angreb (MITM), så den er slået fra som standard og skal eksplicit aktiveres.
rewriteBatchedStatements
For at opnå højtydende batchindsættelse ved at tilføje parameteren rewriteBatchedStatements til URL'en til JDBC-forbindelsen i MySQL og sikre, at driverversionen 5.1.13 eller senere er garanteret. Som standard ignorerer MySQL JDBC-driveren executeBatch()-sætningen, deler et sæt SQL-sætninger, som vi forventer at køre i batches, og sender dem til MySQL-databasen én ad gangen. Kun ved at sætte parameteren rewriteBatchedStatements til true vil driveren udføre SQL i batches Denne mulighed gælder også for INSERT/UPDATE/DELETE
Som standard ignorerer MySQL Jdbc-driveren executeBatch()-sætningen, deler et sæt SQL-sætninger op, som vi forventer at køre i batches, og sender dem til MySQL-databasen én efter én, hvilket direkte forårsager lav ydeevne.
Kun ved at sætte parameteren rewriteBatchedStatements til true, vil driveren hjælpe dig med at udføre SQL i bulk (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)
allowMultiQueries
Tilladelse til at bruge'; ' Adskiller flere forespørgsler (sand/falsk) i én sætning. Standardværdien er "false", hvilket ikke påvirker addBatch() og executeBatch()-metoderne, som afhænger af rewriteBatchStatements.
Når MySQL forbinder til en database, tilføj sætningen:allowMultiQueries=trueRollen for ":
1. Du kan føre et semikolon efter SQL-sætningen for at opnå multi-statement execution. 2. Batchbehandling kan udføres, og flere SQL-sætninger kan udstedes samtidig.
sslMode
Som standard er netværksforbindelser SSL-krypterede; Denne egenskab giver dig mulighed for at slå den sikre forbindelse fra eller vælge et andet sikkerhedsniveau. Følgende værdier er tilladt: "DELUKKET" – en ukrypteret forbindelse etableres; "FORETRÆKKET" - (standard) Hvis serveren aktiverer krypterede forbindelser, etableres en krypteret forbindelse, ellers falder den tilbage til en ukrypteret forbindelse; "PÅKRÆVET" - Opret en sikker forbindelse, hvis serveren har aktiveret den, ellers fejler den; "VERIFY_CA" - Ligner "REQUIRED", men validerer desuden serverens TLS-certifikat mod det konfigurerede certifikatmyndighed (CA)-certifikat; "VERIFY_IDENTITY" - som "VERIFY_CA",
Denne attribut erstatter de forældede gamle attributter "useSSL", "requireSSL" og "verifyServerCertificate", som stadig accepteres, men konverteres til værdien "sslMode", hvis "sslMode" ikke eksplicit er sat: "useSSL=false" konverteres til "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} oversættes som "sslMode=FORETRÆKKET"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} oversættes som "sslMode=REQUIRED"; {"useSSL=true" OG "verifyServerCertificate=true"} oversættes til "Standardindstillingen for "sslMode" er "FORETRAGET", hvilket svarer til de traditionelle "useSSL=true", "requireSSL=false" og "verifyServerCertificate=false" indstillinger, som er de samme som Connector/ Standardindstillingerne for J 8.0.12 og tidligere versioner er forskellige i nogle tilfælde. Applikationer, der fortsat bruger de gamle attributter og er afhængige af deres gamle standardindstillinger, bør gennemgås. Standardindstillingen for "sslMode" er "FORETRAGET", hvilket svarer til de traditionelle indstillinger "useSSL=true", "requireSSL=false" og "verifyServerCertificate=false", hvilket i nogle tilfælde adskiller sig fra standardindstillingen for Connector/J 8.0.12 og tidligere. Applikationer, der fortsat bruger de gamle attributter og er afhængige af deres gamle standardindstillinger, bør gennemgås. I nogle tilfælde er det 12 eller tidligere. Applikationer, der fortsat bruger de gamle attributter og er afhængige af deres gamle standardindstillinger, bør gennemgås. I nogle tilfælde er det 12 eller tidligere. Applikationer, der fortsat bruger de gamle attributter og er afhængige af deres gamle standardindstillinger, bør gennemgås.
Hvis "sslMode" er eksplicit sat, ignoreres den gamle egenskab. Hvis "sslMode" eller "useSSL" ikke er eksplicit sat, anvendes standardindstillingen "sslMode=FOREGET".
JDBC-indstillinger til at slå sikre forbindelser fra:sslmode=deaktiveret
|