【发布时间】:2019-04-09 02:47:16
【问题描述】:
这是我面临的一个问题:我需要列出一些项目。这些项目来自不同的来源(比如表 A、表 B、表 C),具有不同的属性和性质(尽管有些是常见的)。
如何将它们合并到一个分页列表中?
我考虑过的选项:
首先获取它们,然后在代码中对它们进行排序和分页。这效果不好,因为项目太多(数千个)并且性能一团糟。
使用共享属性将它们加入 SQL 视图,一旦 SQL 查询完成,仅重新加载分页项以获取其其余属性。到目前为止,这很有效,但如果源更改/增加,可能会变得难以维护。
你知道其他选择吗?基本上,从两个数据源(在 SQL 中或直接在代码中)对项目进行分页的最常用/推荐的方法是什么。
谢谢。
【问题讨论】:
-
也许
Union可以帮忙:dev.mysql.com/doc/refman/8.0/en/union.html -
@MadhurBhaiya 这就是我为创建 SQL 视图所做的工作。 :)
-
我认为你的问题是公平的。该视图将起作用,但如果行数增长很多,您需要考虑性能问题。您可能需要添加索引以使其更快,或者可能使用物化视图 (Flexviews)。
-
您最关心的是什么?速度、数据库资源消耗、可维护性、调试?
-
@TheImpaler 用户的响应时间和开发人员的可维护性是我主要关心的问题。我会看看物化视图,谢谢!
标签: php mysql sql pagination mariadb