页面加载时间过长


lengthy page load time

我有一个需要12秒才能加载的页面!

该页面需要显示SQL计数查询生成的20个不同的数据项。

没有组合查询的选项,因为每次SQL都不同。

我试过为相关表格编制索引,但没有用。。。

我还考虑过实现memcache和使用页面缓存。

我使用的是流行的codeigniter php框架。

有人有什么建议吗?

创建一个cron,在命令行中进行计数,同时更新一个单独的"计数"表。因此,您将在计数表中有20个条目,所有这些条目都可以在一个查询中请求。在页面加载期间,仅查询该表。

您可以自己决定cron应该多久运行一次,但要确保它不会花费太长时间,否则只需将不同的计数更新过程分离到不同的cron文件(或命令)中。

我想它可能可以忽略不计,但在每个COUNT()查询中实际返回了多少字段?我以前听说过,使用COUNT(),实际上,使用COUNT(*)之类的东西比使用COUNT(列名)要好,因为这样数据库可以基于最快的列。

也许还值得一看CodeIgniter的数据库缓存类——这听起来正是这种有用的情况。

CodeIgniter的Profiler类对于类似的事情非常方便。如果你启用它并使用它生成的报告来了解每个查询需要多长时间,你可能至少能够优化其中的一些。

此外,您可能需要考虑使用字节码缓存-APC非常好,并且似乎可以很好地与CodeIgniter配合使用。据我所知,它不会加速实际的数据库事务,但它可能会通过加速PHP执行来加快应用程序的速度。