應該是你的數(shù)據(jù)庫配置限制了內存使用量導致的.建議查找下相關mysql配置資料.
10年積累的網(wǎng)站建設、成都做網(wǎng)站經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設計后付款的網(wǎng)站建設流程,更有林甸免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
直接倒序取一部分,如果可以就應該是配置的問題.
如果慢的話要考慮字段優(yōu)化
問題需要具體.不銘感的話可以把數(shù)據(jù)發(fā)來我調試一下看看.
你說的寫文件是個思路。如果你只是要求某一個字段是唯一,可以把這個存在內存中,每次進行驗證。然后把驗證通過的數(shù)據(jù)寫入文件,最后在統(tǒng)一從文件中讀出來存入數(shù)據(jù)庫。
但是又會出現(xiàn)個問題。如果你是10萬條數(shù)據(jù)在文件里,你要是想用一個INSERT插入,那必須得先把這數(shù)據(jù)讀到內存里,肯定也很慢,而且不穩(wěn)定。如果你逐條讀出插入,對數(shù)據(jù)庫也是個消耗。不過你可以把數(shù)據(jù)拆散,比如每1000條插一次。
批量插入,
拼接sql語句,每條sql執(zhí)行20個插入語句。然后循環(huán)插入
用php把數(shù)據(jù)生成sql語句,然后導入數(shù)據(jù)庫,(推薦)
可以優(yōu)先計算用戶看到的那一部分數(shù)據(jù)。其它的在后臺慢慢計算,等到用戶看到的時候再顯示。
如果不能這樣,那就得優(yōu)化算法了,但是再怎么優(yōu)化,這么大的數(shù)據(jù),肯定是要花時間的。
檢查下 php.ini 文件中的限制
upload_max_filesize
post_max_size
如果超出你提交的文件大小,就改大一些
改了之后重啟 apache