Verimli veri ithal?

2 Cevap php

Biz gayrimenkul bir çok çalışmak, ve verilerin nasıl içe rearchitecting ederken, ilginç bir konuya rastladım.

Birincisi, bizim sistemi çalışır yolu (gevşek konuşma) bir kez FTP üzerinden bir IDX satıcıdan sağlanan verileri alır bir gün bir Coldfusion işlemini çalıştırın. Onlar bize veri itmek. Ne olursa olsun onlar bize gönderin biz ne olsun.

Yıllar içinde, bu oldukça kararsız olduğu kanıtlanmıştır.

Zaten biz daha ne kadar iyi olduğu kanıtlanmış almak veri, SOAP yöntemleri kullanır RETS standardı üzerinde PHP ile rearchitecting duyuyorum.

O 'güncelleme' mevcut verileri gelince, benim ilk düşünce sadece güncellenen verilerini sorgulamak için oldu. Orada bir liste son ne zaman güncellendiğini size söyler 'Modifiye' için bir alan ve ben kodu (kendime bir şey yanlış giderse durumda bir pencere vermek) son 6 saat içinde güncellenir herhangi bir liste çekecek.

Ancak, gayrimenkul geliştiricileri bir sürü bakılmaksızın sürekli çalışan güncellenen durumu tüm listeleri koşuyoruz 'toplu süreçlerini oluşturma öneririm bakın.

Bu bunu yapmak için daha iyi bir yolu var mı? Veya sadece ben gerek biliyorum verileri kapma ile iyiyim? Gerektiğinden fazla işlem yapmak için bana mantıklı bir sürü yapmaz. Düşünceler?

2 Cevap

Eğer MODİFİYE güven varsa, yaklaşım yeterince iyi ve tüm dosya ayrıştırma daha hızlıdır. Eğer modifiye ne bulmaya çalışırken bütün find loop veya değilse daha zor olacaktır.

Orada olacak hafif bir performans iyileştirme, Veritabanı doğrudan dosya göndermek ve onun dosya ithalat fonksiyonları dahili ithalat izin eğer. Örneğin MySQL bu var - http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html SQL Server gibi emin diğer DB duyuyorum ve Oracle da böyle mekanizmaları vardır. Bu size programlama dili işin yükünü kaydetmek ve sadece veritabanı kaynakları kullanır.

Eğer bir son güncelleme tarihini sahip olacak kadar şanslı iseniz, o zaman güncelleme veya ithal satır sayısını sınırlamak için kesinlikle daha etkilidir. Sadece kayıtları tüm veritabanları iyi tasarlanmış olarak değil, değiştirmek ve her şeyleri beklediğiniz şekilde yapmıyoruz zaman tarih aslında veri kaynağı tarafından güncellenmekte olduğundan emin olun.

Ve ne yaparsanız yapın, satır-by-satır işlemek değil, o şeyler yapmak için en inefficent yoludur. Ben hızlı bir seferde 100000 kayıtların bir satır bir veri kümesini işleyebilir bir milyondan fazla kayıtları toplu ekleme yapabilirsiniz. Ama sen neden bahsediyorsun insert ve değişti 100 kayıt kümesi tabanlı güncelleme 50,000 kayıtların bir toplu ekleme daha hızlı olacak eğer türünü yapmak için set-tabanlı yolu vardır.