2010-07-06 39 views
0

我有一個MS Access前端和MySQL後端。 Everthing運行良好,但我試圖避免以下。 在Access窗體上,我用它來讀取查詢。 一旦結果顯示在Access窗體上(excel就像格式),我可以對AZ,ZA等進行排序在排序時避免從Access重新查詢mysql db

事情是,每次我做任何排序時,我都可以在MySQL Administrator上看到一個查詢(實際上更多比一個)正在執行。由於顯而易見的原因,我需要避免這種情況,因爲我用戶會不斷地對所顯示的數據進行分類和各種操作。

由於數據已經顯示在客戶端(Access窗體)中,所以我不會在進行排序時再次重新查詢MySQL的原因。我期望您對查詢結果的任何處理都將在「本地」進行。

任何想法我在做什麼和錯誤和/或如何避免這種情況?

感謝IND提前

回答

0

這是非常典型的,使往返回服務器進行排序。我想大多數應用程序不會從內部存儲器中排序,而是再次訪問數據庫。如果你只有少數幾行,那麼在本地排序可能會更快。但是如果你處理數百萬行數據庫,那麼在數據庫上執行這種排序會更快,因爲它就是這樣做的。

爲什麼你不想讓它進行排序的往返?

0

你的表單是綁定到整個表的嗎?如果是這樣,那是一個設計錯誤。它應該僅限於有限的記錄集。在這種情況下,只有一個小的查詢將在服務器端執行。其次,您可能希望打開Jet SHOWPLAN(Google for it)並查看Jet/ACE數據庫引擎在優化方面正在做些什麼。

第三,它可能會打到服務器,但它是一個重大的打擊?

最後,您可能會通過使用分配給表單而不是綁定記錄集的斷開連接記錄集來獲得所需的結果。這比使用默認綁定表單複雜得多,但可能是必要的。它確實使得使用Access的時候不那麼令人愉快,因爲合身和完成幾乎不像傳統的Access界面形式那樣流暢。