APP所需的數據採集大體已經結束,統計了一下數據條數,它是這樣的:java
等了大約秒:web
這時候的數據量是多少呢,不到萬條。整體數據條數大約在
萬左右。大概算一下從客戶端發出請求到得到返回數據大概須要
分鐘 ,我見到的延遲
分鐘的應用大概是這個了。顯然,個人這個數據庫查詢是有問題滴~數據庫
那麼問題出在哪裏呢 ?問題可能出如今不少方面。不妨先放下來看一下別人是怎麼實現的。服務器
創建書目表和書詳情表,這樣能夠把數據規模縮小
,帶來的性能提高仍是很可觀的。app
果真,此次在萬條數據中查詢用了
秒,已經接近官方的數據了。jsp
放棄前綴模糊匹配性能
這應該已經脫離優化的範疇了,爲了速度而犧牲了數據的準確性。秒的延遲徹底在可接受的範圍以內,可是在數據量巨大的狀況下,有必要進行前綴後綴匹配嗎?以關鍵詞
爲例,前綴模糊查詢耗時
秒得到
條結果,後綴模糊查詢耗時
秒得到
條結果,相差約
條記錄。思考一下app開發的初衷:給用戶推薦更好的書。一本書質量的最終判斷應該交給用戶。所以,將用戶引導至書架更爲重要。因此犧牲一部分準確性是可行的。測試
刪減部分陳舊的書優化
仍是以爲例,在模糊匹配的
本書中,出現了大量的這種書:3d
種
,即大約有
加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢 !加錢