SORU
21 Ocak 2009, ÇARŞAMBA


Tablo kilitleme olmadan MASA DEĞİŞTİRMEK mi?

MySQL ALTER TABLE deyimi yaparken, bütün tablo-kilitli okuma deyimi süresi için. Eğer büyük bir tablo ise, ınsert veya update deyimi looooong bir süre kapalı olabilir anlamına gelir. Orada "sıcak" tablo hala süreci boyunca güncellenebilir mi böyle bir sütun ekleme gibi ikinci bir yapmak için bir yoldur

Çoğunlukla MySQL için bir çözüm ilgileniyorum ama eğer MySQL yapabiliyorsa ... başka VERİTABANI ilgi duyarım.

Açıklığa kavuşturmak için, amacım sadece ekstra bir tablo sütun gerektiren yeni bir özellik, üretim için basıldığında kesintilerini önlemek için. Herhangi bir veritabanı şemasızamanla değişir, bu sadece hayatın bir gerçeği. Bu değişiklikler, kaçınılmaz olarak kesinti neden gerektiğini kabul etmek gerekir ki, anlamıyorum; o sadece zayıf.

CEVAP
21 Ocak 2009, ÇARŞAMBA


Diğer tek seçenek, birçok VERİTABANI Sistemleri ne işi elle yapmak
- Yeni bir tablo oluşturmak

Sonra bir anda bir yığın üzerinde eski tablo içeriğini kopyalayabilirsiniz. Buna rağmen her zaman herhangi bir EKLEME/GÜNCELLEŞTİRME/dikkatli olmak kaynak tablo üzerinde SİLİN. (Tetik tarafından yönetilen olabilir. Bu bir yavaşlamasına sebep olsa da, bir kilit...) değil

Bir kez bitmiş, kaynak tablo adını değiştirmek, yeni tablonun adını değiştirin. Tercihen bir işlem.

Bir kere, bu tabloyu kullanan bir saklı yordamları, vb herhangi bir yeniden bitmiş. Yürütme planları muhtemelen artık geçerli olacak.

DÜZENLEME:

Bazı yorumlar bu sınırlama kötü bir bit olmak oldu. Yeni bir bakış açısı nasıl bir neden göstermek için koymak istedim...

  • Yeni bir alan ekleyerek her satırda bir alan değiştirme gibi.
  • Alan Kilitler Satır kilitleri benden çok daha zor, hiç tablo kilitleri zihin olurdu.

  • Aslında disk üzerinde fiziksel yapısını değiştiriyorsun, her kaydı taşır.
  • Bu gerçekten daha fazla etki Bütün tablo, ama... bir GÜNCELLEME gibi

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • GoProTutorials

    GoProTutoria

    18 NİSAN 2011
  • mahalodotcom

    mahalodotcom

    8 HAZİRAN 2007
  • RawBrahs

    RawBrahs

    28 Aralık 2010