MySQL çoğaltma hız

2 Cevap php

Biz yerel alan ağı üzerindeki 3 sunucuları var diyelim:

APP - php app server

MASTER - ana Mysql db sunucu

SLAVE - köle Mysql db sunucu (kopyalayan MASTER)

Bir kod bloğu (php) in APP o zaman sadece SLAVE sokulduğu verileri seçmek için kullandığı last_insert_id alınırken, MASTER içine ekler.

Yani SLAVE MASTER gelen veri olması soru, çoğaltma için zaman olmuş olacak? Bu ya MASTER veya SLAVE koymak yük etkilenir?

Ve son olarak, veriler mevcut olan bir sorunu varsa, son verileri sağlamak için bir yol var SLAVE alınır?

2 Cevap

MySQL Çoğaltma zaman kontrol edilemez bir değişken (hatta uygun uygulamalarında sorunlar olduğunu durak çoğaltma ortaya, ya da engelleyebilirsiniz) olduğundan, veri kopyalayan güvenmek en iyisidir. İki durumların içine sorunu yıkmak:

1) Ben R operasyon afterwords ben sadece yapılan değişikliği yansıtmak için bekliyoruz, bir CUD işlemi yaparken kullanıcı değilim. Bu durumda kesinlikle kullanıcının kendi değişikliğin bir etkisi olduğunu bekler çünkü, master kapalı verileri çekmek gerekir.

2) Ben bir dış kullanıcı değilim, * Ben bir CUD komut oldu bilmiyorum ve ben genellikle umurumda değil, çok bayat veri döndürme aksi takdirde muhtemelen PHP kullanarak olmaz, uygulamaların% 99 (kabul edilebilir .)

# 1 için bir alternatif, onun değişim yayılmakta kullanıcıyı bilgilendirmek ve bazı durumlarda kabul edilebilir olacaktır, örneğin Pek çok web sitesi x görünmesini y dakikaya kadar sürebilir söyleyecektir, bu eylem de bu durum.

  • Eğer anlık güncellemeler gerekiyorsa, (potansiyel güvenilmez) DB veri ile birlikte boynuzsuz bir önbellek katmana yazma deneyebilirsiniz. Memcached gibi bir şey bir başbakan adayı olacaktır.

Bu sizin KÖLE sunucusu MASTER sunucudan veri çoğaltır ne kadar hızlı bağlıdır.

Doğrudan INSERT, UPDATE ve bir şey eklediğinizde, yani DELETE komutları ile bağlı ise, aslında bu da mevcut olacak, hem de büyük olasılıkla bunu eklemiş olursunuz.

Köle sunucu her 1 sorgu için 2 sorgular yapmak daha az maliyetli olacağını, MASTER verileri kapmak için sık sık çalıştırılan bir görev tarafından MASTER çoğaltır, bu görev kadar veri mevcut değildir anlamına gelir koştu.