我一直在試圖弄清楚什麼是處理顯示子數據的最好,最有效的方法。在我的具體情況下,我使用的是PHP和MySQL,但我認爲這更像是「通常以任何語言」的交易。如何避免在子數據循環中調用數據庫查詢
我的兩個想法是(在這個例子中,我將列出發票和其行項目)
加入的子數據(發票項目)作爲主數據(發票)只有一個單個查詢我的問題是,假設我在發票上有500個行項目(可能不太現實,但事情發生),那麼我會將整個發票數據從MySQL服務器發送到我的PHP腳本的500倍,聽起來很荒謬,因爲我只需要一次。
第二種選擇是,在循環發票並顯示總髮票數據的同時,選擇發票的行項目。當然,這現在正在更多次地聯繫數據庫500。
是否有任何其他選項用於處理這些數據,使邏輯上(使用給定的模式)?我幾乎100%肯定有,因爲我不相信我是第一個想到這個問題的人,但我想我很難找到正確的方式來搜索關於這個主題的更多信息。
哦哇我沒有想過在PHP中加入它。我會用我的真實數據建立一個基準,看看三種方法中的哪一種勝出。感謝你,我甚至沒有考慮過壓縮數據大小 –
很好,經過了三種方法的大量測試後,在運行兩個查詢後將它們加入到PHP中,一次用於父數據,兩次用於所有子數據(至少在我的情況下)擊敗了另外兩個表現。每個父行的子數據調用顯然丟失了,並且根本沒有擴展,我認爲在我的情況下,查詢很難用所有額外的連接進行索引,所以查詢成了罪魁禍首。 –
看起來好像查詢可以進行優化,但是如果您有大量數據要返回,冗餘數據選項可能會最快。 –