为什么拥有一百万行的数据库会变得如此缓慢?

时间:2019-01-17 20:39:56

标签: sql-server vb.net

当单个表中有100万行时,使用诸如Select * From TBL_USERS Where ID = 20之类的指定命令来处理与该表有关的任何东西都变得非常慢,但是如果我们处理任何其他表,它将变得比通常更快,更容易。表示该缺陷不在数据库中。 对于这种现象和解决方案有解释吗?

1 个答案:

答案 0 :(得分:1)

通常,有两个因素会影响处理查询所花费的时间: SQL Server必须读取多少行才能满足查询条件。如果必须读取所有行(可能还需要读取数据的页面已存储到内存中),则这称为扫描,需要一段时间。如果SQL Server有索引并且只需要读取一页或几页,则速度会更快,称为搜索。

查询的第二部分是必须返回多少行(和列)。如果必须跨局域网推送数百万行,这将需要时间。这就是为什么最好避免使用*(如在tableA中的select *),并尝试在尽可能多的条件下使用,这样会缩小返回的行数。