我必須創建一個每月自動編譯的報告。該報告只需要是2個應用程序(Rails應用程序,稱爲應用程序A和B)的電話號碼的唯一計數。每個應用程序都有一個PostgreSQL數據庫,電話號碼是表格中的列。在每個應用程序中獲取唯一的電話號碼數很容易,只是一個'SELECT COUNT(DISTINCT phone_number)...'查詢。然而,我不能想出一個簡單/有效的方式來跨越兩個應用程序(另外,應用程序A在表中有500k條記錄,應用程序B有8k條記錄)。看起來我必須從兩張桌子上拿出所有電話號碼,把它們放在一起,然後丟棄重複。問題在於內存中處理的記錄太多。對報告的建議
任何人都有最好的方法來做到這一點的意見?下面是一些額外的信息:
- 這兩個應用程序在同一臺服務器
- 數據庫服務器也是這個服務器
- 的應用程序在不同的數據庫上
- 生成/電子郵件發送的報告將是一個cron工作
- 我寧願做最紅寶石編程,最好的應用程序之一
這些表位於不同的數據庫中。我希望它是這麼簡單: – Austin 2012-02-23 05:03:50
我錯過了,對不起。但是對於組合和uniq!,這仍然有效,不是嗎? – xlash 2012-02-23 15:05:19
是的,這是可行的,但這不是我的問題。 Rubyist,所以如何從數組中拋出重複項並不是我正在尋找的答案,我需要建議_automatically_獲得總的唯一數字計數的最佳方法。我的第一個想法是隻從每個數據中提取數據,將它轉儲到一個文件中,然後讓另一個腳本執行上面的操作,問題是500k條記錄太多(太慢) – Austin 2012-02-23 15:18:37