一对多数据库

时间:2013-12-09 04:10:55

标签: mysql sql-server

我创建了一对多关系的数据库

父表说Master有2列NodeId,NodeName; NodeId是PrimaryKey,它的类型为int rest,类型为varchar。

子表说学生有5列NodeId,B,M,F,T;而NodeId就是这里的ForeignKey。

B,M,F,T列都不是唯一的,它可以具有空值,因此这些列都没有被定义为主键。

假设学生表有超过20,00,000个字段。

我的提取查询是

SELECT * FROM STUDENT WHERE NODEID = 1 AND B='1-123'

我想提高抓取速度,任何关于改进数据库结构或替代抓取查询的建议都会非常有用,或者任何可以提高整体效率的建议都是最受欢迎的。

1 个答案:

答案 0 :(得分:0)

由于默认情况下未对外键进行索引,因此如果插入性能不是问题,可能会在student和B中向nodeID添加索引,从而提高查询性能。

更新

索引本质上是一种保持数据排序以增加搜索/查询时间的方法。将它视为有序列表应该足够好了。

索引非常透明,因此您的查询将保持完全相同。

一个简单的索引确实允许具有相同索引字段的行,所以应该没问题。 值得一提的是。默认情况下,主键元素被索引,但PK不允许重复数据。

另外,由于它保持数据的排序,插入时间会增加,但是如果您的数据集很大,查询时间会变得更快。