2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
https://blog.csdn.net/weixin_37519752/article/details/138728036
1. Edut
Kirjoituksen skaalautuvuus: Molemmat solmut voivat käsitellä kirjoitustoimintoja, mikä parantaa kirjoitustoimintojen skaalautuvuutta.
Korkea saatavuus: Jos jokin solmu epäonnistuu, toinen solmu voi silti jatkaa palveluiden tarjoamista, mukaan lukien kirjoitustoiminnot.
Failover: Monimutkaista vikasietomekanismia ei tarvita, koska molemmat solmut ovat aktiivisia.
2. Haitat
Tietojen johdonmukaisuus: Tietojen johdonmukaisuuden ylläpitämiseksi tarvitaan monimutkaisia ristiriitojen havaitsemis- ja ratkaisumekanismeja.
Verkkovaatimukset: Verkon vakaudelle ja latenssille asetetaan korkeat vaatimukset, koska solmujen välinen reaaliaikainen synkronointi on herkkä verkon laadulle.
Ylimääräiset lisäkustannukset: Reaaliaikaisen synkronoinnin aiheuttamat ylimääräiset verkko- ja levy-I/O-ylikustannukset.
3. Sovellettavat skenaariot
Hajautetut sovellukset: Sovellukset, jotka vaativat kirjoitusominaisuuksia eri maantieteellisissä paikoissa.
Suuri kirjoituskuorma: skenaariot, joissa kirjoituskuorma on hajautettava suorituskyvyn parantamiseksi.
Reaaliaikaiset tietovaatimukset: Sovellukset, jotka vaativat useiden solmujen tietojen reaaliaikaista synkronointia.
Yksi isäntä ja yksi orja tai yksi isäntä ja useita orjia, joita tukee mysql5.7 tai uudempi
1. Edut
Tietojen redundanssi: Tarjoaa tietojen kuuman varmuuskopion, mikä vähentää tietojen katoamisen riskiä.
Suorituskyvyn parantaminen: Yksi isäntä ja useita orjia, eri käyttäjät lukevat eri tietokannoista ja suorituskyky paranee.
Skaalautuvuus: Kun liikenne lisääntyy, orjapalvelimia voidaan lisätä helposti vaikuttamatta järjestelmän käyttöön.
Kuorman tasapainotus: Yksi isäntä ja useita orjia vastaavat isäntätehtävien jakamista ja kuormituksen tasapainottamista.
2. Haitat
Tietojen viive: Koska replikointi on asynkronista, on olemassa tietojen replikointiviiveen vaara.
Lisääntynyt monimutkaisuus: Lisääntynyt järjestelmän monimutkaisuus vaatii enemmän ylläpitoa ja hallintaa.
Lisäresurssien kulutus: Orjapalvelimien käyttöönotto edellyttää lisälaitteistoresursseja.
Vaikutus kirjoitussuorituskykyyn: Kaikki kirjoitustoiminnot suoritetaan pääpalvelimella ja niistä voi muodostua suorituskyvyn pullonkaula.
3. Sovellettavat skenaariot
Luku- ja kirjoituserottelu: sopii skenaarioihin, joissa lukutoimintoja on paljon enemmän kuin kirjoitustoimintoja.
Tietojen varmuuskopiointi: Käytetään tietojen reaaliaikaiseen varmuuskopiointiin tietojen häviämisen estämiseksi.
Korkeat saatavuusvaatimukset: kriittiset sovellukset, joiden on varmistettava palvelun jatkuvuus
1. Käytä hakemistoa
Indeksit ovat avainasemassa tehokkaassa taulukoissa olevien tietojen kyselyssä.MySQL:ssä voit käyttää B-Tree-indeksiä tai hash-indeksiä nopeuttaaksesi kyselytoimintoja
Esimerkki:
CREATE INDEX index_name ON table_name (column1, column2, ...);
2. Optimoi kyselylausekkeet
Kyselyjen optimointi voi parantaa MySQL:n suorituskykyä.Kyselyn suoritusaikaa voidaan lyhentää asianmukaisilla kyselylauseilla, indekseillä ja välimuistimekanismeilla, ja täyden taulukon tarkistukset ja tarpeettomat datatoiminnot voidaan välttää.
Esimerkki:
# 通过使用索引和合适的查询语句
SELECT * FROM table_name WHERE column1 = "value" AND column2 = "value";
# 避免使用通配符查询,可以使用索引来加速查询
SELECT * FROM table_name WHERE column1 LIKE "value%";
# 避免在查询条件中使用函数,函数会导致索引失效
SELECT * FROM table_name WHERE DATE(column1) > "2021-01-01";
3. Välimuistin optimointi
MySQL:n välimuistimekanismi voi parantaa kyselyn suorituskykyä. Asettamalla kyselyvälimuistin ja järjestelmävälimuistin oikein voit vähentää levyn IO-toimintoja ja nopeuttaa kyselyn suorittamista.Käytä MySQL:n kyselyvälimuistia, InnoDB:n puskurivarastoa jne.
# 启用查询缓存
query_cache_type = 1
query_cache_size = 64M
4. Osiotaulukko
Kun tietomäärä on erittäin suuri, voit harkita osioiden ja taulukoiden käyttöä kyselyn suorituskyvyn parantamiseksi. Osiointi jakaa tiedot pienempiin loogisiin osiin, joista jokaista voidaan tiedustella ja ylläpitää itsenäisesti. Taulukon jakaminen tarkoittaa suuren taulukon jakamista useiksi pieniksi taulukoiksi, ja jokainen pieni taulukko tallentaa osan tiedoista.
# 分区
CREATE TABLE table_name (
...
)
PARTITION BY RANGE (column_name) (
PARTITION p1 VALUES LESS THAN (value1),
PARTITION p2 VALUES LESS THAN (value2),
...
)
# 分表
CREATE TABLE table_name (
...
)
PARTITION BY HASH (column_name) PARTITIONS 4;
5. Parametrien viritys
https://blog.51cto.com/u_12196/6967500
https://blog.51cto.com/u_13259/6936668
6. Yhteyspoolin hallinta
Yhteyksien yhdistäminen on tietokantayhteyksien hallintatekniikka, joka voi tehokkaasti vähentää yhteyksien luomisen ja tuhoamisen kustannuksia. Korkean samanaikaisuuden ympäristössä yhteyspooli voi luoda etukäteen tietyn määrän yhteyksiä ja tallentaa ne yhteyspooliin. Kun uusi pyyntö tulee, yhteys voidaan saada yhteyspoolista ilman, että yhteyttä tarvitsee luoda uudelleen joka kerta. Tämä voi parantaa huomattavasti samanaikaista käsittelyä.
7. Laitteiston optimointi:
Käytä tehokkaita laitteita, kuten nopeaa suoritinta, suurikapasiteettista muistia ja nopeaa levyä parantaaksesi tietokannan käsittelyominaisuuksia