2009-06-04 7 views
2

De par sa conception, tout lecture devrait être de l'esclave, et mettre à jour le maître,problème de conception maître-esclave

mais la situation suivante:

il y a une water_mark de colonne dans table_a,

et Je dois lire table_b dont time_mark colonne est plus grande que la colonne water_mark de

table_a,

Si je lis de l'esclave, puis UPDA La colonne water_mark à "now()" dans le maître,

Et s'il y a un grand retard entre l'esclave et le maître?

Répondre

2

Comme vous l'indiquez, ce serait dangereux; SELECT ... FOR UPDATE et d'autres "lire afin d'écrire ensuite" transactions doit avoir la lecture et l'écriture sur le même serveur (et, sur les tables InnoDB, bien sûr ;-).

+0

Alex a raison, si vous faites une mise à jour de votre lecture, faites les deux sur le maître. – UltimateBrent

Questions connexes