多数据库数据列表分页

后台管理系统中,面对来自多个数据库的列表数据分页需求,本文提出了两种解决方案:一是定时将各数据源同步到单一数据源A进行分页查询;二是采用内存中分页,先将所有数据加载到内存,再进行分页操作。每种方案都有其适用场景和考虑因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多数据库查询数据列表分页

概述: 在后台管理系统中,列表数据的展示有可能来自多个数据源,列表页需要支持分页

在这里插入图片描述
这边有两种方案:

  1. 多个数据源的数据定时同步到某一个数据源A中,列表显示的数据就从数据源A中进行分页查询
  2. 内存中分页,首先将查询的数据存放到内存,然后再进行查询分页

定时同步到数据源A方案
将多个数据源的数据根据具体的时间进行迁移,同步到Mysql/MongoDB…具体位置根据实际开发决定

内存中分页方案

$data = [
    0 => ['name' => "姓名1", 'age' => "年龄1"],
    1 => ['name' => "姓名2", 'age' => "年龄2"],
    2 => ['name' => "姓名3", 'age' => "年龄3"],
    3 => ['name' => "姓名4", 'age' => "年龄4"],
    4 => ['name' => "姓名5", 'age' => "年龄5"],
    5 => ['name' => "姓名6", 'age' => "年龄6"],
    6 => ['name' => "姓名7", 'age' => "年龄7"],
    7 => ['name' => "姓名8", 'age' => "年龄8"],
    8 => ['name' => "姓名9", 'age' => "年龄9"],
    9 => ['name' => "姓名10", 'age' => "年龄10"],
];

/**
 * 数组分页
 * @param array $arrayData 数组数据
 * @param int   $page      第几页
 * @param int   $pageSize  每页展示条数
 * @return array
 */
function arrayToPageData($arrayData = [], $page = 1, $pageSize = 10)
{
    $arrayData = array_values((array)$arrayData);
    $pageData['list'] = array_slice($arrayData, ($page - 1) * $pageSize, $pageSize);
    $pageData['pagination']['total'] = count($arrayData);
    $pageData['pagination']['currentPage'] = $page;
    $pageData['pagination']['prePageCount'] = $pageSize;
    return $pageData;
}

echo json_encode(arrayToPageData($data, 2, 3));

输出

{
    "list": [
        {
            "name": "姓名4",
            "age": "年龄4"
        },
        {
            "name": "姓名5",
            "age": "年龄5"
        },
        {
            "name": "姓名6",
            "age": "年龄6"
        }
    ],
    "pagination": {
        "total": 10,
        "currentPage": 2,
        "prePageCount": 3
    }
}

https://juejin.im/post/5e6f01dbf265da5752095a6d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值