|
|
Publicēts 2022-2-11 13:59:18
|
|
|

Optimizēta Java JDBC rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries un sslMode konfigurāciju veiktspēja.
jdbc visu konfigurācijas rekvizītu dokumentācija:Hipersaites pieteikšanās ir redzama.
Pārskats:
allowPublicKeyRetrieval
Izmantojot MySQL 8.0, pēc programmas restartēšanas tiek parādīta uzvedne com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: publiskās atslēgas izgūšana nav atļauta
Vienkāršākais risinājums ir to pievienot pēc savienojumaallowPublicKeyRetrieval=true
Ja lietotājs izmanto sha256_password autentifikāciju, parole ir jāaizsargā pārsūtīšanas laikā, izmantojot TLS protokolu, bet, ja RSA publiskā atslēga nav pieejama, var izmantot servera nodrošināto publisko atslēgu; Servera RSA publisko atslēgu var norādīt savienojumā, izmantojot ServerRSAPublicKeyFile, vai parametru AllowPublicKeyRetrieval=True, lai klients varētu iegūt publisko atslēgu no servera; Tomēr jāatzīmē, ka AllowPublicKeyRetrieval=True var izraisīt ļaunprātīgu aģentu vienkārša teksta paroļu iegūšanu, izmantojot man-in-the-middle uzbrukumus (MITM), tāpēc tas ir izslēgts pēc noklusējuma un tam jābūt skaidri iespējotam.
pārrakstīt partijas paziņojumus
Lai panāktu augstas veiktspējas partijas ievietošanu, pievienojot parametru rewriteBatchedStatements JDBC savienojuma URL MySQL un nodrošinot, ka tiek garantēta draivera versija 5.1.13 vai jaunāka. Pēc noklusējuma MySQL JDBC draiveris ignorē priekšrakstu executeBatch(), sadala SQL priekšrakstu kopu, ko mēs plānojam izpildīt paketēs, un nosūta tos uz MySQL datu bāzi pa vienam. Tikai iestatot parametru rewriteBatchedStatements uz true, draiveris izpildīs SQL partijās Šī opcija ir derīga arī INSERT/UPDATE/DELETE
Pēc noklusējuma MySQL Jdbc draiveris ignorē executeBatch() priekšrakstu, sadala SQL priekšrakstu kopu, ko mēs plānojam izpildīt partijās, un nosūta tos uz MySQL datu bāzi pa vienam, kas tieši izraisa zemu veiktspēju.
Tikai iestatot parametru rewriteBatchedStatements uz true, draiveris palīdzēs jums izpildīt SQL lielapjomā (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)
allowMultiQueries
Lietošanas atļauja"; ' Atdala vairākus vaicājumus (patiess/nepatiess) vienā priekšrakstā. Noklusējuma vērtība ir "false", kas neietekmē addBatch() un executeBatch() metodes, kas ir atkarīgas no rewriteBatchStatements.
Kad MySQL izveido savienojumu ar datu bāzi, pievienojiet paziņojumu:"allowMultiQueries=trueLoma ":
1. Jūs varat nēsāt semikolu pēc SQL paziņojuma, lai panāktu vairāku paziņojumu izpildi. 2. Var veikt partijas apstrādi un vienlaikus izsniegt vairākus SQL paziņojumus.
sslMode
Pēc noklusējuma tīkla savienojumi ir šifrēti SSL; Šis rekvizīts ļauj izslēgt drošo savienojumu vai atlasīt citu drošības līmeni. Ir atļautas šādas vērtības: "DISABLED" - tiek izveidots nešifrēts savienojums; "VĒLAMS" - (noklusējums) Ja serveris iespējo šifrētus savienojumus, tiek izveidots šifrēts savienojums, pretējā gadījumā tas atgriežas pie nešifrēta savienojuma; "OBLIGĀTS" - izveidojiet drošu savienojumu, ja serveris to ir iespējojis, pretējā gadījumā tas neizdodas; "VERIFY_CA" - līdzīgs "REQUIRED", bet papildus validē servera TLS sertifikātu pret konfigurēto sertificēšanas iestādes (CA) sertifikātu; "VERIFY_IDENTITY" - piemēram, "VERIFY_CA",
Šis atribūts aizstāj novecojušos vecos atribūtus "useSSL", "requireSSL" un "verifyServerCertificate", kas joprojām tiek akceptēti, bet konvertēti uz vērtību "sslMode", ja "sslMode" nav skaidri iestatīts: "useSSL=false" tiek konvertēts uz "sslMode=disabled"; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} tiek tulkots kā "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} tiek tulkots kā "sslMode=REQUIRED"; {"useSSL=true" UN "verifyServerCertificate=true"} tiek tulkots kā "Noklusējuma iestatījums "sslMode" ir "PREFERRED", kas ir ekvivalents tradicionālajiem iestatījumiem "useSSL=true", "requireSSL=false" un "verifyServerCertificate=false", kas ir tāds pats kā savienotājs/ J 8.0.12 un vecāku versiju noklusējuma iestatījumi dažos gadījumos atšķiras. Jāpārskata lietojumprogrammas, kas turpina izmantot vecos atribūtus un paļaujas uz vecajiem noklusējumiem. "sslMode" noklusējuma iestatījums ir "PREFERRED", kas ir līdzvērtīgs tradicionālajiem iestatījumiem "useSSL=true", "requireSSL=false" un "verifyServerCertificate=false", kas dažos gadījumos atšķiras no Connector/ J 8.0.12 un vecāku noklusējuma iestatījuma. Jāpārskata lietojumprogrammas, kas turpina izmantot vecos atribūtus un paļaujas uz vecajiem noklusējumiem. Dažos gadījumos tas ir 12 vai agrāk. Jāpārskata lietojumprogrammas, kas turpina izmantot vecos atribūtus un paļaujas uz vecajiem noklusējumiem. Dažos gadījumos tas ir 12 vai agrāk. Jāpārskata lietojumprogrammas, kas turpina izmantot vecos atribūtus un paļaujas uz vecajiem noklusējumiem.
Ja "sslMode" ir skaidri iestatīts, vecais rekvizīts tiek ignorēts. Ja "sslMode" vai "useSSL" nav skaidri iestatīts, tiek lietots noklusējuma iestatījums "sslMode=PREFERRED".
JDBC iestatījumi, lai izslēgtu drošus savienojumus:sslmode=atspējots
|
Iepriekšējo:Kā pārdēvēt failus partijās LinuxNākamo:Kā ierobežot Taivānas lietotāju reģistrāciju, ievietot informāciju pēc vēlēšanās un lūgt padomu, kā rakstīt.
|