sql >> Databasteknik >  >> RDS >> Mysql

MySQL-replikeringshastighet

Eftersom MySQL-replikeringstid är en okontrollerbar variabel (även i korrekta implementeringar kan problem uppstå som stoppar replikeringen eller blockerar den), är det bäst att inte lita på att data replikerar. Du kan dela upp problemet i två situationer:

1) Jag är användaren som gör en CUD-operation, jag förväntar mig att R-operationen efterord ska spegla förändringen jag just gjorde. I det här fallet måste du absolut ta bort data från mastern, eftersom användaren förväntar sig att hans förändring hade en effekt.

2) Jag är en extern användare, jag vet inte att ett CUD-kommando hände och jag bryr mig i allmänhet inte, så att returnera inaktuella data är acceptabelt (i 99 % av implementeringarna, annars skulle du förmodligen inte använda PHP* ).

Ett alternativ till #1 skulle vara att informera användaren om att hans förändring sprider sig och är acceptabel i vissa situationer, t.ex. många webbplatser kommer att berätta att x kan ta upp till y minuter att visas, detta är denna situation i aktion.

  • Om du behöver omedelbara uppdateringar kan du försöka skriva till ett cachelager som pollas tillsammans med (potentiellt opålitliga) DB-data. Något som memcached skulle vara en främsta kandidat.


  1. Anropar MySQL lagrad procedur i ROR 4

  2. Hur ställer jag in global innodb_buffer_pool_size?

  3. Hur kan jag avrunda ett tal nedåt till närmaste 10?

  4. Förlorade anslutningen till MySQL-servern under förfrågan på slumpmässiga enkla frågor