在Yii2中呈现视图时,我注意到呈现时间有点长。下面是日志的一部分:
03:57:57.435 info yii\db\:查询选择*来自user_profile,其中userid IN (16,15,12)
03:57:57.501 trace yii\base\View::renderFile
请注意在这两个步骤之间的时间,几乎需要超过80毫秒。呈现视图很简单,只是一个带我自己代码的gridview小部件。页面大小越小,渲染时间就越短。当列约为15项时,几乎需要250 is 来呈现视图。此外,sql查询总共需要2ms。
'columns' => [
我有一个customers表,根据这个表,我将使用查询获得所有具有大约15,000行的客户数据
select * from customers order by createdate desc;
索引在createdate列上创建。查询没问题,不用花那么多时间
但是ci视图加载页面的时间大约是2分钟,我使用分析检查了它。
$this->output->enable_profiler(TRUE);
输出
BENCHMARKS
Loading Time: Base Classes
我们对Server有一个很大的视图(有大约500米的记录)。由于它不适合内存,所以我考虑使用如下所示的取块进行处理:
with pymssql.connect(host, user, pass, db) as conn:
query = f"SELECT * FROM view_name;"
with conn.cursor() as cursor, futures.ThreadPoolExecutor(3) as executor:
cursor.execute(query)
chunk_size = 5000