2013-07-20 33 views
0

我有兩個表:類別表和職位表。他們有一對多的關係,類別表中的記錄可以在職位表中有許多匹配的記錄。 我正在使用JPA,休眠,MySQL。如果我想獲得所有類別的帖子,我有兩種方法。第一種方法:找到一個類別,然後獲得該類別的所有帖子。第二種方式:SELECT p FROM Post p WHERE p.category = :category。如您所知,發佈表中的類別字段是一個外鍵並已編入索引。所以第二種方式的查詢將會執行得很快。我想問一下我應該用哪種方式?爲什麼? 謝謝在JPA中獲取類別的職位,mysql

+0

坦率地說,這並不重要。第二個會稍微快一點,除非帖子的集合已經加載到會話中。 –

回答

0

你應該做的代碼更有意義。在你遇到性能問題之前,讓你的代碼清晰並且容易重構。

我會用這種方式,不要求你寫任何查詢。這可以讓您在確實遇到性能問題時稍後進行更改。您可以更好地利用您的時間來優化程序的慢速部分。

對於性能而言,單次訪問數據庫比多次訪問更快。因此,一個查詢會更快。如果有許多字段,則還需要考慮限制要提高性能的字段數。