我們一直在爲mySQL數據庫建立一個搜索結果系統原型,其中包含約200萬個姓名和地址以及300萬個關聯訂閱和會議出勤記錄。加速搜索結果顯示的最佳方式
在執行搜索,所有結果中返回的時刻 - 每個結果我則執行第二查詢,以查找訂閱/會議的人員的唯一識別。我在所有重要列上都有索引,並且在phpMyAdmin(0.0xxx秒)內執行相當快速的單個查詢,但將其饋送到網頁中以顯示(PHP,使用DataTable進行分頁),並且該頁面需要幾秒鐘才能呈現。我們已經嘗試將數據移植到Lucene數據庫,它就像LIGHTNING一樣,但瓶頸似乎仍然顯示結果而不是檢索它們。
我想這應該是由於在瀏覽器中構建,提供和渲染頁面的開銷。我想我可以通過執行GROUP_CONCAT來刪除我在上面提到的子查詢,以獲取原始查詢中的訂閱代碼,但是如何加快顯示頁面的結果?
我想一點,經常用AJAX /服務器端分頁查詢可能是去這裏的方式(可能得到50個結果,查詢小,頁面比較小,可以更快地提供服務),但我歡迎任何建議你們可能有。
你能提供任何sql samples/EXPLAIN/schema信息,包括索引嗎?有可能第二個查詢限制了你毫秒的加起來。 – 2013-03-27 10:05:58
您是否嘗試過使其沒有「數據表」 – Rob 2013-03-27 10:06:49
@ Simonatmso.net - 這裏是按名稱搜索某人的例子查詢:http://pastebin.com/DWscK2Y4 - 有很多更在訂閱查找查詢比需要有是因爲系統中其他地方使用了相同的查詢。可能只爲搜索結果編寫單獨的較小版本。 – MikkyX 2013-03-27 10:19:30