,我要在这个形式的块磁铁的拉力与三个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
因此,您将不会有任何性能问题试图访问表。 –