SQL:SELECT*FROM方法
c#
只是出于好奇,究竟是如何SELECT * FROM table WHERE column = "something"工作的?
基本原理是否for/foreach与具有以下if条件的循环相同:
for (iterator)
{
if(condition)
//print results
}
如果我正在处理 100 条记录,那么在获取我想要的所需数据方面,这两种方法之间是否会有相当大的性能差异?
回答
SQL 是第 4 代语言,这使它与编程语言非常不同。不是告诉计算机如何做一些事情(通过行循环,比较列),你告诉计算机怎样做(获得匹配条件的行)。
DBMS 可以使用也可以不使用循环。它也可以使用散列和桶,对数据集进行预排序,等等。可以自由选择。
在技术方面,您可以在数据库中提供索引,以便 DBMS 可以查找键以快速访问行(就像在电话簿中快速查找姓名)。这为 DBMS 提供了如何访问数据的选项,但它仍然可以自由使用完全不同的方法,例如按顺序读取整个表。