鍍金池/ 問答/PHP/ php大數(shù)據(jù)更新,增量處理

php大數(shù)據(jù)更新,增量處理

1.背景:公司是做域名的,目前要對接Godaddy的一口價域名,對方一口價域名數(shù)據(jù)量較大,只給一個全部數(shù)據(jù)的接口,且產品要求定時更新域名數(shù)據(jù)(新增新寄售的域名,去除狀態(tài)異常的域名)
2.問題:導入完整數(shù)據(jù)后,要如何更新數(shù)據(jù),目前采用的方法是:清空表中Godaddy的所有數(shù)據(jù),然后重新調接口導入所有數(shù)據(jù),有沒有什么好辦法,可以實現(xiàn)數(shù)據(jù)的增量更新處理(數(shù)據(jù)量差不多有600W左右)
有沒有哪位大神指點一下,多謝?。。?/p>

回答
編輯回答
雨蝶

“清空數(shù)據(jù)表再重新導入全部數(shù)據(jù)”這種方法對數(shù)據(jù)庫的壓力太大了。你在調接口獲取到新的全量數(shù)據(jù)后,做一次遍歷,逐條逐條的跟已有的數(shù)據(jù)做對比,如果不一樣,就說明這條數(shù)據(jù)已經發(fā)生了變更,這時候update一下數(shù)據(jù)庫對應的記錄即可。

其實這種情況最好的解決方法是,讓Godaddy那邊提供一個增量接口。

2018年7月5日 19:24
編輯回答
乖乖瀦

個人覺得,先清空,然后再填入的辦法還是有點問題,在清空數(shù)據(jù)后數(shù)據(jù)填充前就會有一段時間的真空期。

那個分批次的接口有沒有排序的功能,能夠使用offset 去獲取新的域名,然后, 還需要一個查詢域名的接口,這種接口應該會有提供的吧,不然你們系統(tǒng),做域名感覺沒發(fā)做呀。
在用戶查詢域名的時候再去判斷這個域名的更新時間,如果大于某一個閾值,就重新去單獨查詢這個域名然后更新到你們的系統(tǒng)。
當然只是一種思路,如果條件不滿足再想其他辦法。

2017年2月27日 10:44
編輯回答
傻叼

你是怎么對接口導入的 php cli , 還是用了第三方swoole 什么擴展導入的?

數(shù)據(jù)庫瓶頸在哪里你就是開100個進程也沒有,數(shù)據(jù)庫插不進去,需要的時間也差不多。

可不可以每50萬條數(shù)據(jù) 分一張表導入?

2017年9月25日 01:12
編輯回答
呆萌傻

另做一套備用程序,用新的全量數(shù)據(jù)比對現(xiàn)有的數(shù)據(jù),自己給正式站點提供增量接口呢?

2018年5月30日 21:34