跳到内容

提升大型数据集的性能

编辑此页

如果您的数据库表包含数千条记录,SonataAdmin 生成的数据库查询可能会变得非常慢。这里有一些关于如何提升您的管理后台性能的技巧。

将默认分页器更改为 SimplePager

默认的 Pager 会计算表中的所有行,以便用户可以导航到数据网格中的任何页面。但是,计数成千上万或数百万条记录可能是一个缓慢的操作。如果您不需要知道所有记录的数量,可以使用 SimplePager 代替。它不会计算所有行,但只会告知用户是否有下一页。

要在您的管理后台中使用 SimplePager,请在服务定义中定义 pager_type

1
2
3
4
5
6
7
# config/services.yaml

services:
    app.admin.post:
        class: App\Admin\PostAdmin
        tags:
            - { name: sonata.admin, model_class: App\Entity\Post, manager_type: orm, group: 'Content', label: 'Post', pager_type: 'simple' }

注意

如果 pager_results 模板尚未被重载,它将自动更改为 @SonataAdmin/Pager/simple_pager_results.html.twig

本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议进行许可。
目录
    版本