Veri preload &

2 Cevap php

CSV formatında (bir dizi önceden yüklenmiş veri) bir veritabanı ihracat için (1024MB bir ini_set gerektiren) bir PHP web sayfası büyük bir veritabanı önyük yapmak gerekir. Ben bu her zaman doğru bir seçim değil ama aslında ben bu yüzden burada ana teknik soru, bunu yapmak için ihtiyaç olduğunu biliyoruz:

Nasıl tüm önceden yüklenmiş veri bu sunucu performansları optimum kalmak böylece kurtulmuş CSV nesil sonra temizlendiğinden emin olabilirsiniz?

2 Cevap

Ben size bunu size açıklanan şekilde yapmak gerektiğini söylüyorlar biliyorum, ama ben yine de bu seçeneği dışarı atarım. Eğer SELECT INTO OUTFILE sözdizimini kullanarak düşündünüz mü? MySQL (MySQL kullanarak değilseniz, bulabilirsiniz benzer bir işlevsellik muhtemelen var) sizin için CSV dosyası oluşturabilirsiniz:

SELECT * INTO OUTFILE '/tmp/result.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM test_table;

Dosyayı dışarı dökümü istedim eğer bundan sonra bir fpassthru() yapabilirdi.

Eğer belleğe seti tüm veri yükleme etrafında alamıyorsanız o zaman özel unset() senin dizi onunla yapılır sonra temizlendiğinden emin olmak için olabilir. Havenard ancak belirtildiği gibi bir web sayfasından bu yüklüyorsanız PHP komut dosyası yürütülürken tamamlandıktan web parçacığı PHP ortamı kapattı gibi, o web sunucusu otomatik olarak, belleği temizleyecektir.

Belki unset (). PHP komut dosyası biter gibi ama aslında, bellek serbest.