2013-02-21 44 views
0

我發現在FAQ下面整理出一個錯誤之後。爲什麼使用find和will_paginate會有危險?

這有可能是你想分頁靜態數組,而不是在數據庫中執行分頁查詢。舉例來說,一個有效記錄後鏈接一個PAGINATE電話找到或所有的方法是錯誤的:

上面一行將返回期望的結果,但違背了分頁的目的。在這裏,find查詢將首先加載數據庫中的所有記錄,這是危險的,應該避免。

我的問題是,爲什麼是危險的一個分頁找?

回答

2

分頁是爲了防止不必要的數據庫加載:你只想從數據庫的一些元素,所以你只加載它們。

使用find您加載的一切,那麼你樣的排序。

Dangerous ==重DB負荷,因此潛在的崩潰。

+0

好知道這一點。有時候,雖然沒有辦法滿足數據庫的全部負載。例如,如果有人想分頁排序列表。 – 2013-02-21 16:26:06

+2

排序也可以在db級完成 – apneadiving 2013-02-21 16:27:01

相關問題