【发布时间】:2016-05-18 08:13:32
【问题描述】:
我有一个包含大约 10000 个条目的 MySQL 表。我想表示这些按名称排序的条目。该页面一次只能显示 20 个条目。
我的问题是,这样做是否更有效率
- 让数据库对其进行排序,即通过排序、限制、选择查询加载对应的20个条目。
或者应该是一个
- 对条目列表进行一次排序,将它们保存在文件中的数组中,加载文件,然后只查看感兴趣的 20 个索引。
在我看来,两者都很糟糕。我不想在用户每次加载页面时对包含 10000 个条目的数据库进行排序以显示 20 个条目,也不想加载一个包含超过 10000 个条目的数组以访问相应的 20 个条目。
备注:我不是在问is php sort better than mysql "order by"? 或database sort vs. programmatic java sort - 我想知道对数据库进行预排序是否更好,将其保存在数组中,然后加载包含所有条目的完整排序数组。
【问题讨论】:
-
不清楚您的问题与已经收到一些好的答案的question you refer to 有何不同。
-
对于这么小的数据集,我怀疑它有什么不同。
-
嗯,这真的取决于用户。如果您的大多数用户会在您的分页中逐页浏览,那么将结果存储在数组中是有意义的,因为作为回报,这将使交互更快,在这种情况下使用 AJAX 可能会更好。
-
@drmonkeyninja 不同之处在于我正在考虑对数组进行预排序——我的意思是当有人调用页面时,数组已经排序并保存在 my_already_saved_array.php 之类的文件中。因此我的优点是我不需要浪费时间进行排序,但我必须加载一个巨大的数组。