在專案中,總是會有什麼什麼列表查詢,然後還要求根據型別分類查詢,有時候發現不同型別關聯的表不相同,想要獲得的東西也不相同,之前我查詢方法總是採用union 將幾個相關表連線起來,這樣造成的問題是,壓力全部在資料庫上,
後來根據領導的建議,我將相同的基表先查出來,然後,採用for迴圈將不同關聯的表按條件進行查詢關聯設定值,這樣做就可以將資料庫大量關聯表查詢的壓力降低並轉移出來,然後在service層中進行for迴圈操作,如果在service層中分頁,也就是乙個頁碼數量的迴圈,壓力一下子就小了。
但是也存在乙個問題就是綜合查詢時候,有的產品要求模糊查詢,模糊的字段比較多,比如要求模糊基表以外的一些字段,就不能模糊了,因為我們已經把這些值放在service層中根據條件來新增到相關條目中的。
具體要求如何,怎麼操作,就看產品和後端如何討論確定了。
轉移到service層的**如下:主要體現在for迴圈中不同型別連表不同,如型別是12,則關聯account表和gadleeorder表,查出資料後設定進相應的那一條message中,如果是型別16,則關聯device相關表然後查處device相關資訊設定到相應那一條的message中。
@override
public pageinfouserselectmessagelist(mapparammap)
if(messagetype==12)
if(messagetype==16)
return null;
}
效能優化 Limit查詢的優化
limit常用於分頁處理,時長會伴隨order by從句使用,因此大多時候回使用filesorts這樣會造成大量的io問題。例子 需求 查詢影片id和描述資訊,並根據主題進行排序,取出從序號50條開始的5條資料。select film id,description from sakila.film ...
查詢效能的優化 前言
上一章,我們解釋了怎樣優化schema.這是高效能的乙個必要條件。但是僅僅考慮schema也是不夠的 你也需要設計你的查詢。如果你的查詢很差,即使schema設計完美,也沒什麼用。查詢優化,索引優化,和schema優化應該一起齊頭並進的。隨著你在mysql中獲得了優化查詢的經驗,你也會明白怎樣設計s...
關於Mysql limit 的效能優化
問題 mysql 的 limit 給分頁帶來了極大的方便,但資料偏移量一大,limit 的效能就急劇下降。以下是兩條查詢語句,都是取10條資料,但效能就相去甚遠。select from table name limit 10000,10 select from table name limit 0,...