【发布时间】:2017-05-29 15:02:27
【问题描述】:
我正在开发一个管理系统网站,该网站由从服务器上运行的 Postgres 数据库中提取的数据表组成。我一直在通过编写 PHP 查询并回显数据库中的数据行来检索数据。这适用于我网站上的所有页面,除了尝试从包含超过 50,000 条记录的表中检索数据的页面 - 当我尝试加载该页面时,它要么超时,要么完全崩溃我的浏览器。使用 pgAdmin 查看该表中的数据时,大约需要 10-20 秒。
有谁知道为什么会发生这种情况,或者我可以如何加快数据表的加载时间?谢谢!
编辑:
这就是我使用 PHP 查询数据库的方式:
$query = "SELECT respondentid, pro, homephone, otherphone, fname, lname, note from respondent";
$result = pg_query($query);
echo "<table id='respondents'>";
echo "<thead> <tr> <th>Headings</th> </tr></thead>";
while($row = pg_fetch_array( $result )) {
echo '<tr>';
echo '<td>' . $row['columnnames'] . '</td>';
echo "</tr>";
echo "</table>";
这里是数据库列:
respondentid serial not null,
pro character varying(3),
homephone character varying(15),
otherphone character varying(15),
fname character varying(15),
lname character varying(20),
note text
【问题讨论】:
-
能否在日志、查询、表结构和查询解释计划中发布错误消息?
-
你试过LIMIT Query Optimization吗?例如。
LIMIT 50 -
@Arkhena 编辑了我的帖子并提供了更多详细信息。我不确定日志中的错误消息,因为我的页面已经挂在那里很久了,我不确定要查找什么。
-
@joe-black 我希望将所有记录加载到表中,因为该表的主要用途是搜索,我需要能够搜索所有记录。
-
dataTables 将超出大多数浏览器脚本执行限制 apx。大约 4-5.000 行。如果您需要处理更多的行,您应该考虑serverSide processing。这不是错误,也不是因为 dataTables 很慢,它确实在客户端代码上进行了优化 - 任何 JS 代码或 jQuery、角度、ember 都无法处理 5.000 个表行,用排序、过滤、自定义渲染、事件和在默认浏览器执行时间限制内以此类推。
标签: php postgresql datatables