我在PHP中有幾個代碼來完成MySQL可以做的工作。把工作交給MySQL還是PHP?
如排序,從不同的MySQL表合併每一個數據,等等
最近,我發現我可以做所有這些東西與一個MySQL查詢。
我想知道是否將MySQL能夠工作的工作交給MySQL或PHP。 效率,速度等。
謝謝你,如果你讓MySQL的處理這項工作
我在PHP中有幾個代碼來完成MySQL可以做的工作。把工作交給MySQL還是PHP?
如排序,從不同的MySQL表合併每一個數據,等等
最近,我發現我可以做所有這些東西與一個MySQL查詢。
我想知道是否將MySQL能夠工作的工作交給MySQL或PHP。 效率,速度等。
謝謝你,如果你讓MySQL的處理這項工作
如果您在PHP這樣做,你只是重新實現是,MySQL已經具有的功能。它遠離最優化的解決方案,因此速度更慢。
您應該明確地在SQL查詢中執行此操作。
你的表現會增加。
在MySQL中做它。毫無疑問,這是更有效的。比如,PHP會使用更多的內存。
在MySQL中執行此操作會更好。首先,它優化了數據的排序算法,並可以利用創建的索引。此外,如果它正在合併和過濾,則最終將從數據庫中傳輸更少的數據。
數據庫經過優化,可在檢索數據時執行這些功能。在數據庫級別排序比在PHP上編寫數十行代碼更容易閱讀
在MySQL中有可用的字符串函數來合併數據,同時從數據庫中檢索數據。
我絕對會建議MySQL。
黑氈帽Luniya
沒問題:MySQL是爲此而構建的。 要添加一些東西,也許你會對構建聯合表查詢(多個表查詢)感興趣。這是非常有用的,非常簡單。例如:
$query = "SELECT DISTINCT post.title as title, post.id as id,
product.imageURL as imageURL, product.dueDate as dueDate
FROM post, product
WHERE post.status='saved'
AND post.productURL=product.linkURL
AND post.userEmail='$session[userEmail]'
AND NOT EXISTS(
SELECT publication.postId FROM publication
WHERE publication.postId=post.id
)
ORDER BY post.id";
這是我構建的一些代碼的一個簡單示例。 事情是它合併了2個不同的表格,其中post.productURL = product.linkURL的限制。它也使用否定,當你正在尋找的集合沒有被任何條件定義,而是沒有定義時,它是非常有用的。 您也可以通過在MySQL中構建視圖來避免這種情況。
我是新手,所以我希望它有幫助。乾杯。
我希望得到一個明確的答案。通常我只是使用PHP,因爲我的PHP技能比我的SQL技能更強大,但如果它們確實快得多或效率更高,我可能會更多地使用內置的MySQL函數。 – ubiquibacon 2010-07-25 05:52:32