2011-03-11 67 views
5

如果我有一個M乘N矩陣填充數據,將其保存到sql表以便快速查詢的最佳方法是什麼?我可以保存一個3列表(X,Y,Z)的總MN行,或者簡單地將M行保存爲N列。 N在幾百到幾千的數量級,M可以大得多。我想第二種方法查詢速度更快,因爲查詢可以建立在已知的列名上。但是,它會建議在一張桌子上有多少列?謝謝,什麼是在sql表中保存M乘N矩陣的推薦方式

回答

7

你的第二個選項(N列)將使編譯時從列未知的值中選擇更難(你將不得不動態生成選擇)。所以,我將使用表(X,Y,值)和make(x,y)作爲主鍵。

+0

我同意 - 一個表,X,Y和值是最乾淨的方式。這可以很容易地擴展到N維。 – 2011-03-11 15:55:09

2

您將對錶格在任何RDBMS上可以擁有的最大列數有限制。例如,SQL Server 2008對於非寬表有最多1.024列,對於寬表有最多30.000列,Oracle最多有1.000列(儘管我不確定該限制是否發生了變化)。所以我推薦你的第一個選擇,實際上,即使沒有列限制,我也會選擇。

相關問題