[英]Insert many rows to one table OR insert rows separately to many table?
我有两个数据库表(SQL CE)。 教师表和A 类表。 这两个表具有一对多关系,其中一位老师有很多班(即Class有一个外键Teacher_id )。 在运行时通过C#代码插入(或生成)的教师(行)数,如上课
在INSERT和SELECT中,以下哪个更快?
不管哪种方法都更快,但是(2)是最好的方法。...只需创建索引即可支持您的搜索。 这就是几乎所有关系数据库都被使用的方式。
维护选项(1)的噩梦让我发抖
OK,从哪里开始。 首先,教师与班级之间的关系可能是多对多的,但正如您所描述的,至少是一对多的。
第一种选择绝对是错误的方法。 切勿动态创建表。 第二种选择是如何处理这种事情。 数据库功能强大,通常由非常聪明的人编写,并且可以处理的行数比给定学校的所有学生都要多。
只要您正确索引表,它们就可以轻松支持数亿条记录。
我也同意米奇·麦特(Mitch Wheat)的观点。 因为当您创建索引时,您的表在物理上根据我们的教师正在创建(Teacher_Id,Class_Id)的组合索引进行排序。 尽管它将有助于快速检索“选择陈述”。
除非您已经遇到性能问题,否则我不会担心它们。 除了行数以外,还有很多其他会导致性能问题的因素,应根据行的内容对它们进行不同的处理。 您不必担心表中影响性能的列数,而要担心行数。 以及与数据库的并发连接数。 一个表中的一百万行不是很多,是其他两项与那么多行一起使数据库变慢。 您应该使用第二个选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.