Optimalizáltam a Java JDBC rewriteBatchedStatements, allowPublicKeyRetrieval, allowMultiQueries és sslMode konfigurációinak teljesítményét.
jdbc Minden konfigurációs tulajdonságok dokumentáció:A hiperlink bejelentkezés látható.
Szemle:
allowPublicKeyRetrieval
MySQL 8.0 használatkor, az alkalmazás újraindítása után a com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Nyilvános kulcs lekérdezés nem engedélyezett
A legegyszerűbb megoldás, ha a csatlakozás után adod hozzáallowPublicKeyRetrieval=true
Ha a felhasználó sha256_password hitelesítést használ, a jelszót továbbítás közben a TLS protokoll segítségével kell védeni, de ha az RSA nyilvános kulcs nem elérhető, akkor a szerver által biztosított nyilvános kulcs használható; A szerver RSA nyilvános kulcsa megadható a kapcsolatban a ServerRSAPublicKeyFile vagy az AllowPublicKeyRetrieval=True paraméter segítségével, hogy a kliens megszerezze a nyilvános kulcsot a szervertől; Ugyanakkor meg kell jegyezni, hogy az AllowPublicKeyRetrieval=True képes arra, hogy rosszindulatú ügynökök tiszta szövegű jelszavakat szerezzenek, amelyek man-in-the-middle támadások (MITM) révén szereznek, ezért alapértelmezés szerint ki van kapcsolva, és kifejezetten be kell kapcsolni.
rewriteBatchedStatements
A nagy teljesítményű batch beillesztés eléréséhez úgy kell hozzáadni, hogy a rewriteBatchedStatements paramétert hozzáadjuk a JDBC kapcsolat URL-jéhez MySQL-ben, és biztosítsuk, hogy az 5.1.13-as vagy újabb illesztőprogram garantált legyen. Alapértelmezés szerint a MySQL JDBC illesztőszer figyelmen kívül hagyja az executeBatch() utasítást, felosztja azokat az SQL utasításokat, amelyeket várunk csomagokban végrehajtani, és egyenként elküldi azokat a MySQL adatbázisba. Csak ha a rewriteBatchedStatements paramétert true-ra állítja, hajtja végre az SQL rendszert csomagokban Ez az opció INSERT/UPDATE/DELETE esetén is érvényes
Alapértelmezés szerint a MySQL Jdbc illesztőprogram figyelmen kívül hagyja az executeBatch() utasítást, felbontja azokat az SQL utasításokat, amelyeket várunk csomagokban futtatni, és egyenként elküldi azokat a MySQL adatbázisba, ami közvetlenül alacsony teljesítményt okoz.
Csak ha a rewriteBatchedStatements paramétert true-ra állítjuk, segít az illezőgép tömegesen végrehajtani az SQL-t (jdbc:mysql://ip:port/db?)rewriteBatchedStatements=true)
allowMultiQueries
Használati engedély'; ' Több lekérdezést (igaz/hamis) választ el egyetlen állításban. Az alapértelmezett érték "false", ami nem befolyásolja az addBatch() és executeBatch() metódusokat, amelyek a rewriteBatchStatements-től függenek.
Amikor a MySQL csatlakozik egy adatbázishoz, add hozzá a következő állítást:allowMultiQueries=trueA ": szerepe:
1. Az SQL utasítás után egy szemesköpletet is hordozhatsz, hogy többszörös utasítást végrehajts. 2. Kötött feldolgozás elvégezhető, és egyszerre több SQL utasítás is kiadható.
sslMode
Alapértelmezés szerint a hálózati kapcsolatok SSL titkosított; Ez a tulajdonság lehetővé teszi, hogy kikapcsold a biztonságos kapcsolatot, vagy válassz egy másik biztonsági szintet. A következő értékek engedélyezettek: "DISABLED" – titkosítatlan kapcsolat létrejött; "PREFERRED" – (alapértelmezett) Ha a szerver titkosított kapcsolatokat engedélyez, titkosított kapcsolat jön létre, különben visszakerül titkosítatlan kapcsolatra; "SZÜKSÉGES" – Biztonságos kapcsolat létrehozása, ha a szerver engedélyezte, különben meghibásodik; "VERIFY_CA" – Hasonló a "REQUIRED"-hez, de emellett érvényesíti a szerver TLS tanúsítványt a konfigurált tanúsítványhatóság (CA) tanúsítvánnyal; "VERIFY_IDENTITY" – mint a "VERIFY_CA",
Ez az attribútum váltja fel a régi, elavult attribútumokat, mint a "useSSL", "requireSSL" és "verifyServerCertificate", amelyek továbbra is elfogadottak, de átalakítva "sslMode" értékre, ha az "sslMode" nincs kifejezetten beállítva: a "useSSL=false" átalakítva "sslMode=disabled"-re; {"useSSL=true", "requireSSL=false", "verifyServerCertificate=false"} úgy fordítható, mint "sslMode=PREFERRED"; {"useSSL=true", "requireSSL=true", "verifyServerCertificate=false"} úgy fordítható, mint "sslMode=REQUIRED"; {"useSSL=true" ÉS "verifyServerCertificate=true"} úgy fordítható, hogy "Az "sslMode" alapértelmezett beállítása "PREFERRED", ami megfelel a hagyományos "useSSL=true", "requireSSL=false" és "verifyServerCertificate=false" beállításoknak, amelyek megegyeznek a Connector/ A J 8.0.12 és korábbi verziók alapértelmezett beállításai bizonyos esetekben eltérőek. Azokat az alkalmazásokat, amelyek továbbra is a régi attribútumokat használják és a régi alapértelmezéseikre támaszkodnak, felül kell nézni. Az "sslMode" alapértelmezett beállítása a "PREFERRED", ami megfelel a hagyományos "useSSL=true", "requireSSL=false" és "verifyServerCertificate=false" beállításokkal, amelyek bizonyos esetekben eltérnek a Connector/J 8.0.12 és korábbi verziók alapértelmezett beállításaitól. Azokat az alkalmazásokat, amelyek továbbra is a régi attribútumokat használják és a régi alapértelmezéseikre támaszkodnak, felül kell nézni. Néha 12 éves vagy korábban. Azokat az alkalmazásokat, amelyek továbbra is a régi attribútumokat használják és a régi alapértelmezéseikre támaszkodnak, felül kell nézni. Néha 12 éves vagy korábban. Azokat az alkalmazásokat, amelyek továbbra is a régi attribútumokat használják és a régi alapértelmezéseikre támaszkodnak, felül kell nézni.
Ha a "sslMode" kifejezetten be van állítva, a régi tulajdonságot figyelmen kívül hagyjuk. Ha a "sslMode" vagy a "useSSL" nincs kifejezetten beállítva, akkor az alapértelmezett "sslMode=PREFERRED" beállítás kerül alkalmazásra.
JDBC beállítások a biztonságos kapcsolatok kikapcsolásához:SSLMODE=letiltott
|