Aynı MySQL Query => At Once Running With Çoklu Script

2 Cevap php

Ben aynı zamanda cron çalışan birden çok komut istiyorum. Onlar, bu özel komut dosyası kullanmak için benzersiz bir durum kimliği ile 500 satır, tüm güncelleştirme diyecekler.

Her komut güncellemek için satır aynı tip kapmak ve komut, bir kerede çalıştırın aynı anda çalışacak sorgular arasındaki girişim olacak? Örneğin, bu sorguyu kullanarak:

UPDATE table SET status = <unique script ID> WHERE status = 0 LIMIT 500

Ben bir kez daha güncelleme aynı satırları almak mı? Ben her script benzersiz satırları almak için almak için çalışıyorum. Ben farklı zamanlarda çalıştırmak sorguları yapmak için () uyku kullanarak düşünüyordum, ama bunun gerekli olduğunu eğer ben emin değilim.

Teşekkürler.

2 Cevap

Ben sorguları sırayla yürütülür düşünüyorum. Eğer örneğin, ilk güncellemek için satır listesini istedi eğer bir sorun vurmak olabilir, ama bu bir cezası olmalıdır.

Bir sorun senaryo: Script 1 ve 2, neredeyse aynı anda başladı.

  • Senaryo 1: SEÇİN id FROM tablo status = 0 SINIRI 500
  • Senaryo 2: SEÇİN id FROM tablo status = 0 SINIRI 500
  • Senaryo 1: UPDATE tablo SET durum = 123 WHERE id IN (1,2,3 ...)
  • Senaryo 2: UPDATE tablo SET durum = 124 WHERE id IN (1,2,3 ...)

Sizin senaryo Ancak, komut başına sadece bir sorgu ile bu tür sorunları önlemek olacaktır. Script 1 durumların tüm güncelleyecek ve Script 2 güncellemek için hiçbirine sahip olduğunu göreceksiniz.

Sen sürece temel depolama motoru işlem semantik olduğu gibi ince olmalıdır. InnoDB çalışır, ancak MyISAM olmaz.