我的最終目標是發送300萬條記錄的谷歌地圖API來顯示爲標誌,但在此之前我去的..查詢1萬條記錄從MySQL到PHP
我一直沒能甚至可以將100萬加載到PHP數組中。數據是每個元素的18位數字,有2列和1百萬行。
查詢僅僅是一個直線上升SELECT *
,但我通過循環和陣列中的存儲正確的記錄時運行內存。我試過使用SplFixedArray,但沒有任何運氣。
我需要找到一個很好的方法來批量分割它 - 運行一些測試後,我可以將大約500k拉入到一個沒有達到內存限制(已經是512M!)的數組中,所以我可以做這在2或3個查詢?在頁面加載之前,我仍然需要將全部數據保存到服務器端的數組中,並且我可以將它傳遞給Maps,所以我假設批處理不會修復它,因爲它仍然會在內存中?
編輯:有一個大的評論鏈增長,但主要是大家都同意,這是出於某種原因或其他一個壞主意。所以我的解決方案是把它拉回到大約300k點,這可以通過少得多的擊球來實現。
不要這樣做.....大量的數據需要大量的內存。爲了讓你知道你需要多少內存,[閱讀此](https://nikic.github.io/2011/12/12/How-big-are-PHP-arrays-really-Hint- BIG.html)....然後停止嘗試DDOS Google Maps API –
@MarkBaker所以這只是直線上漲是不可能的?不是粗魯,但我很好奇。而且我不應該進行任何DOS操作,它會將數組加載到我自己的站點上,然後將其加載到gmap中 - 我認爲這不會導致Google額外的服務器負載 – Tom
如果您要求Google Maps API提供繪圖請求3000000個數據點,那麼這將被谷歌拒絕,就好像它是一次攻擊.....你遇到過任何試圖用這個數據量來做的企業嗎?有一個很好的理由,他們爲什麼不 –