Php 如何根据datatable的分页限制数据库请求?

Php 如何根据datatable的分页限制数据库请求?,php,json,symfony,datatables,limit,Php,Json,Symfony,Datatables,Limit,我正在从我的数据库加载数据,这是一个非常大的数据量。为了获得真正快速的性能,我限制了数据(使用parts函数) Controller.php $table = $this->em->getRepository($EntityName)->parts(10); $table_json = $serializer->serialize($table, 'json'); $table_array = json_decode($table_json); // here I am

我正在从我的数据库加载数据,这是一个非常大的数据量。为了获得真正快速的性能,我限制了数据(使用
parts
函数)

Controller.php

$table = $this->em->getRepository($EntityName)->parts(10);
$table_json = $serializer->serialize($table, 'json');
$table_array = json_decode($table_json);
// here I am adding some complex data to the array from other database tables and then I encode the array again for the datatable
$data = json_encode($table_array);
page.html.twig:

  var table = $('.table').DataTable({
    "lengthMenu": [[10, 25, 50,100, -1], [10, 25, 50,100, "All"]],
    "pageLength": 10,
    "scrollX": true,
    "data":{{ output.data|raw }},
零件功能:

 public function parts($limit) {
      return $this->createQueryBuilder('documents')
      ->setMaxResults($limit)
      ->getQuery()
      ->execute();
    }
我想知道的是,根据分页方式,是否有可能从数据库中只加载10条记录?因此,分页1到10将加载前10条记录,分页11到20将加载下10条记录。我做了很多研究,但没有找到适合我的特定代码的解决方案。这是因为在从数据库加载之后,我需要在数据表中显示记录之前对记录做一些处理

public function parts($offset, $limit) {
    return $this->createQueryBuilder('documents')
      ->setFirstResult($offset)
      ->setMaxResults($limit)
      ->getQuery()
      ->getResult();
}
但我建议使用