2016-01-07 28 views
6

En yeni MySQL Workbench (6.3.6) sürümünü indirdim ve uzak bir tabloyu (Google CloudSQL'de) yeni "tablo verisi dışa aktarma" sihirbazını kullanarak csv'ye aktarmayı denedim. Tabloda yaklaşık 600.000 satır vardı ve indirilen son boyut yaklaşık 75MB'ydı. 7.5 saat sürdü.MySQL çalışma tezgahı tablosu verileri dışa aktarılıyor

Bu dışa aktarma işlemini gerçekleştirmek için Google Geliştirici Konsolu'nu kullanabileceğimin farkındayım (bunu yaptım ve yaklaşık 15 saniye sürdüm), ancak MySQL Workbench ile ilgili bir sorun var gibi görünüyor. Bunun bu kadar yavaş gitmesine neden olan bir yapılandırma sorunu olabilir mi?

+1

Bir meraklı, dosyayı yerel veya uzak makineye dışa aktardınız mı? Bunu değiştirmenin herhangi bir etkisi var mı? –

+0

Ağ gecikmesini teşhis etmek için kendinizle örnek IP arasında bir traceroute (mtr müthiş) çalıştırabilirsiniz? – Nick

+0

https://stackoverflow.com/questions/33296569/mysql-workbench-table-data-import-wizard-extermely-slow Bu bağlantıyı iletin –

cevap

0

Açıklama: Workbench, CSV dışa aktarma sihirbazı aracılığıyla büyük veri kümelerine çok yavaş aktarılıyor. Orantısız olarak daha küçük bir kümeye eşzamanlı olarak yavaşlar. Ancak, bu .NET ile daha önce karşılaştığım bir şey. sihirbazı ile 15k ya da öylesine kayıtları veya daha fazla ve ihracat içeren bir tablo alın:

Nasıl tekrarlamak. Ne kadar sürdüğünü not alın ve daha sonra bu verilerin bir alt kümesini dışa aktarın ve alınan sürenin satır sayısıyla doğrusal olarak nasıl korelasyon göstermediğini görün.

de Önerilen düzeltme: CSV ihracat uygulamaları oluştururken İçimden fark ettik MS .NET framework çok iyi büyük dizeleri ile başa çıkamadığı ve sonuç olarak kötü performans gösteren.

Yine de bir çözüm buldum. Oluşturduğunuzda dosyaya büyük bir dize dökerken, 1 büyük dize oluşturma ve dışa aktarma işlemi tamamlandığında bir kerede dosyaya yazmak yerine, sadece birkaç tane yaparak çok daha iyi bir performans elde ediyorum Bir seferde oluşturulan yüzlerce CSV dosyası, dosyaya yazıp oluşturulan verileri yazdığınız arabelleği temizler.

Bir geçici dosyaya yazmanızı, ardından işini bitirdiğinizde yeniden adlandırın/işaretini kullanmanız önerilir. Yazmak için Yaz ve ardından taşıma/yeniden adlandırma, Photoshop ve diğer bazı uygulamaların verilerini kaydetme biçimidir. Ve kendimi geliştirirken bulduğum x satırları ve kızarma, .NET'in 20MB'lık bir dizeyi yönetmesini sağlamaktan çok daha hızlıdır.

İlgili konular