,我要在這個形式的塊磁鐵的拉力與三個dimentions在Excel表中的數據:加快SQL SELECT與只是數字表
a/mm | b/mm | c/mm | force/N
---------------------------------
1 | 1 | 1 | 0.11
1 | 1 | 2 | 0.19
1 | 1 | 3 | 0.26
...
100 | 80 | 59 | 7425
100 | 80 | 60 | 7542
diagram showing what a, b and c mean
每塊磁鐵有一排,a,b和c以毫米爲整數,a的範圍爲1-100,b爲1-80,c爲1-60。所以總共有100 * 80 * 60 = 480,000行。 我想製作一個在線計算器,您可以在其中輸入a,b和c,併爲您提供力量。爲此,我想要使用類似這樣的查詢:
SELECT FROM blocks WHERE a=$a AND b=$b AND c=$c LIMIT 1
我想使此查詢儘可能快。我想知道我可以採取什麼措施來優化此搜索。我應該如何安排SQL表中的數據?我應該保持表格的結構與我的Excel表格相同嗎?我應該保持行的順序嗎?我應該使用哪些索引?我應該添加一個唯一的ID列到表中?我願意提出任何建議來加速這項工作。
需要注意的是:
- 的數據已經很好地被排序,b和c
- 表已經包含了所有的數據,並沒有什麼人會做它只是顯示它,所以我們不要「T擔心UPDATE的速度查詢
- a和b是可以互換的,這樣我就可以刪除所有的行,其中b> A
- 增加A,b或C總是會導致更大的牽引力
- 我暈這個計算器是網站的一部分。我使用PHP和MySQL。
- 如果可能的話,儘量減少存儲表所需的內存也是可取的,速度是優先級
- 請不要建議涉及使用公式而不是我的數據表的答案。這是一個要求,即數據從數據庫中提取,而不是計算
最後,您可以estimeate:
- 這樣選擇查詢需要多長時間有和沒有優化?
- 這樣的表格需要多少內存?
一共不多,最多三分鐘。 – mrk1357
因此,您將不會有任何性能問題試圖訪問表。 –