我計劃提供一個簡單的詞組查找Web服務。短語數量約爲3-5百萬個條目,每個條目少於50個字符。該服務非常簡單,如果用戶給出的短語在列表中返回true,否則返回false。所以在服務器端,我應該只是簡單地將條目放在mysql數據庫中,並在用戶短語進來時查詢它?是否還有其他更高效的實施?即更快,更少的內存,更大的查詢音量等等,或者應該加載到內存中?具有巨大列表查找功能的Web服務的最佳實施
任何意見,建議,意見將不勝感激!
我計劃提供一個簡單的詞組查找Web服務。短語數量約爲3-5百萬個條目,每個條目少於50個字符。該服務非常簡單,如果用戶給出的短語在列表中返回true,否則返回false。所以在服務器端,我應該只是簡單地將條目放在mysql數據庫中,並在用戶短語進來時查詢它?是否還有其他更高效的實施?即更快,更少的內存,更大的查詢音量等等,或者應該加載到內存中?具有巨大列表查找功能的Web服務的最佳實施
任何意見,建議,意見將不勝感激!
MySQL應該可以毫無困難地處理500萬個條目。
如果我是你,我會構建數據庫並在本地測試它,並且有500萬行僞隨機數據。
如果你能夠模擬很多併發連接,那就這樣做。如果沒有,只需將其推廣到100個感興趣的用戶。
保留記錄。使用分析。
謝謝,我想我會給它一個滾動... – Safecoder
這實際上取決於您將擁有多少個併發用戶。
如果您有很多請求/秒,請將數據保存到內存(看起來您需要大量),例如memcached。 否則,使用數據庫。
或者同時使用:如果數據不是緩存(memcached),則從數據庫加載並將其保留爲內存以備將來需要。
你使用什麼服務器端語言? PHP,Java等... –
我正在使用PHP + mysql – Safecoder
你打算只搜索完整匹配還是更靈活一些?換句話說,如果我是一個用戶,並且我想搜索「Lorem ipsum dolor sit amet」這個短語,你會讓我輸入「Lorem ipsum」並做一個通配符匹配,或者你會要求我鍵入整個事情? –