我儘可能少地影響性能,並努力做到這一點。PHP MySQL的操作方法和性能
這裏的設置...
搜索與搜索精煉過濾器,使一個AJAX調用返回結果的新(精)設置PHP處理結果頁面。
我有4個表包含我需要連接到PHP處理程序代碼中的所有數據。
表1 - 與主要細節
表2的記錄主表 - 評分從專業評級公司#每個產品1
表3 - 評分從專業評級公司#每個產品2
表4 - 來自專業評級公司#3的每個產品的評級
搜索結果頁面上的精煉者是jquery滑塊,範圍從最低允許評分到最高評分。
移動滑塊句柄時,將使用新值創建新的AJAX調用,並運行數據庫查詢以創建一組全新的提煉結果。
從表1中獲取我需要的數據是非常簡單的部分。我正在努力的是如何有效地在其他3個表中包含連接,並只拾取與精煉值/範圍相匹配的行。表2,3和4的年份(2004 - 2012年)都有多個列,當我初步嘗試將其全部納入一個查詢時,它陷入了困境。
表2,3,4保持每個記錄的各種等級表1
表2,3列,4 ... ID - 的productID - y2004 - y2005 - y2006 - y2007 - ...你明白了。
每年的每列都有一個數字值(默認爲0)。
我需要做的是有效地選擇匹配用戶在所有4個表中一次選擇的精細範圍的記錄。
煉油廠搜索示例將是...獲取表1中的所有記錄,其中價格介於25美元和50美元之間,並且表2記錄具有1-4之間的評級(來自任何年份/列),並且其中表3記錄有一個評級(從任何年份/列)在80 - 100之間,表4記錄的評級(從任何年份/列)在80 - 100之間。
任何關於如何設置它的性能儘可能?
我們平均在初始搜索中討論了多少結果?將它們全部加載並使用JS進行過濾可能會更容易 - 使用MySQL跳過這些過濾,使用Javascript完成所有操作。當然,這取決於開始的記錄數量,因爲您不想讓瀏覽器停滯不前。 – BenOfTheNorth