像SELECT * FROM people
这样的查询可能会产生严重的内存问题,即很多人喜欢称之为“超出内存”。使用数据库时,迭代器如何工作?
许多程序员调用迭代器来减少内存消耗。迭代器是一种“play-n-pause video recording”,意味着它们产生一个值,停止,产生一个值等等,避免一次产生所有的值。在Python中的一个例子可能是以下几点:
def myIterator():
for i in range(10):
yield i * 2
现在,当涉及到使用迭代从数据库中提取数据,我得到很困惑。我总是被告知限制对数据库的查询数量,因为它可能会成为一个瓶颈,并且使用迭代器,我认为增加查询的数量。是这样吗?迭代器如何处理数据库查询?这是短床单的知名问题吗?另外,如果在迭代器的提取阶段,数据库中会添加一些数据,会发生什么情况?
P.S.我的问题与特定的编程语言无关,但总的来说。
您认为获得前10名和超过100名用户的前10000名的区别是什么? – maSTAShuFu
嗯,这取决于。如果您仅使用LIMIT功能进行单个查询,则不需要任何人员。但是,如果你在时间取1行,那么区别在于,在第一种情况下,你将做出10个查询,在第二个10000和第三个100中。 – zer0uno