Python 长度与计数

Python 长度与计数,python,mysql,sql,Python,Mysql,Sql,我知道这可能是一个非常基本的区别/问题,但当数据不是单值数据(即,它是一个可数、数组、聚合等)时,获取某事物的长度与获取计数之间是否存在一般区别 举几个例子: >>> len([1,2,3,4,5]) 5 select count(*) from ( select "1" union select "2" union select "3" union select "4" union select "5" ) x count(*) 5 这两者之间有什么区别,或者它们在

我知道这可能是一个非常基本的区别/问题,但当数据不是单值数据(即,它是一个可数、数组、聚合等)时,获取某事物的
长度
与获取
计数
之间是否存在一般区别

举几个例子:

>>> len([1,2,3,4,5])
5

select count(*) from (
  select "1" union select "2" union select "3" union select "4" union select "5"
) x

count(*)
5

这两者之间有什么区别,或者它们在某些情况下可以互换使用(如果是,何时?)

SQL函数是由服务器端的数据库执行的,
COUNT
SQL函数在客户端,Python脚本只从服务器接收一个整数,使用Python中的
len
函数从服务器检索完整的行列表,只在客户端对行进行计数,这样比从服务器检索完整的行列表要高效得多。另一方面,如果您确实需要数据,而不仅仅是计算数据,那么您应该检索行,然后使用
len
函数来计算它们,而不是使用两条SQL语句,一个用来查询数据,另一个用来清点数据。

这基本上是调度员用无线电通知公交车司机,询问车上有多少人,然后把所有的人都送到调度员那里清点。