我有一個頁面可以根據類別ID從多個類別中拉出許多標題。更快在MYSQL中查詢或使用PHP邏輯
我想知道是否更有意義的是拉出所有的標題,然後通過PHP將它們排序,如果/ ifelse語句或更好地運行多個查詢,每個查詢包含每個類別的標題。
我有一個頁面可以根據類別ID從多個類別中拉出許多標題。更快在MYSQL中查詢或使用PHP邏輯
我想知道是否更有意義的是拉出所有的標題,然後通過PHP將它們排序,如果/ ifelse語句或更好地運行多個查詢,每個查詢包含每個類別的標題。
爲什麼不在一個查詢中做到這一點?類似於:
SELECT headline FROM headlines WHERE category_id IN (1, 2, 3, ...);
如果您使用PHP過濾標題,請考慮您將丟棄多少標題。如果最終只取消10%的頭條新聞,那麼不會像當你扔掉90%的結果時那麼重要。
通常最好不要超載數據庫,因爲如果您有很多同時查詢,則可能會造成瓶頸。
但是,在PHP中處理您的處理通常是,因爲Apache會根據需要處理多個請求來分叉線程。
像往常一樣,這一切歸結爲:「有多少流量?
MySQL已經可以爲你選擇和排序數據了。我建議懶惰,並使用它。
另外,我會尋找(1)查詢,一次提取所有類別和標題。 ORDER BY類別,發佈日期或其他?
每次去數據庫都會花費你一些東西。返回額外的數據,然後你決定忽略花費你的東西。所以你幾乎肯定會更好地讓數據庫進行修剪。
我敢肯定,有人可能會想出一些決定需要哪些數據會使查詢非常複雜,因此數據庫難以優化的情況,而您可以輕鬆地在代碼中執行該操作。但是如果我們談論的是「從類別='體育'的故事中選擇標題,然後選擇」從類別='政治'的故事中選擇標題「,然後」從類別='健康'的故事中選擇標題「等等, (「健康」,「體育」,「政治」)的類別中的標題,後者顯然更好。
什麼是您的類別ID的來源?你有分類表嗎?你是否獲得所有類別和標題,或者只有選定的類別? – CoderDennis 2009-05-18 16:55:20
我還沒有決定是否我只是每個標題行都有一個類別字段,或者將它分割爲自己的表格。 – Tim 2009-05-18 17:16:43