带有php和mysql的数据表超过10000条记录的大量数据
Posted
技术标签:
【中文标题】带有php和mysql的数据表超过10000条记录的大量数据【英文标题】:datatables with php and mysql large amount of data over 10000 records 【发布时间】:2018-03-11 17:59:27 【问题描述】:我在管理面板脚本中使用了表条带化数据表,当尝试显示来自 mysql 和 php 的大量数据时,加载页面需要花费大量时间。
以下是使用数据表的代码:
<script>
'use strict'; var Site = window.Site;
$(document).ready(function($) Site.run(); );
(function()
$(document).ready(function()
var defaults = $.components.getDefaults("dataTable");
var options = $.extend(true, , defaults,
"aoColumnDefs":
[ 'bSortable': false, 'aTargets': [-1] ],
"iDisplayLength": 10,
"aLengthMenu":
[
[5, 10, 25, 50, -1],
[5, 10, 25, 50, "All"]
],
"sDom": '<"dt-panelmenu clearfix"Tfr>t<"dt-panelfooter clearfix"ip>',
"oTableTools": "sSwfPath": "../assets/vendor/datatables-tabletools/swf/copy_csv_xls.swf"
);
$('#exampleTableTools').dataTable(options);
);
)();
</script>
如何更快地加载所有记录并在同一加载页面中。
【问题讨论】:
试过使用 Ajax 吗? 没有我用的php类和函数我觉得会一样吗? 不,不一样。阿贾克斯速度很快。谷歌 php 数据表 Ajax。你会得到很多答案 从 MySQL 加载所有记录总是很慢,您是否考虑过分页数据?还是将其限制为某些子集或记录? 不能一次加载所有 10,000 个,否则浏览器将死机,一次必须显示更少的结果,可能是分页,或延迟加载,或 ajax 在滚动时一次加载 100 个???等,限制查询 【参考方案1】:就像其他人说的那样。如果一次加载 1000 个条目,页面会很慢。 为此,您需要启用分页:
'bPaginate': true
您还应该启用具有大量数据的 bProcessing:
'bProcessing':true
使用服务器端处理以获得更快的速度,并带有外部 .php 文件:
'bServerSide':true
'sAjaxSource': 'your_external_get_data.php'
查看文档了解更多信息:http://legacy.datatables.net/usage/features
【讨论】:
【参考方案2】:如果您需要大量数据,则必须在 php.ini 中设置限制和分页。 获取所有数据后,将数据表设置为限制。 如果您有更大的数据,请在 php 中设置分页。
【讨论】:
它有自动分页,但仍然加载一次所有数据,所以页面很慢以上是关于带有php和mysql的数据表超过10000条记录的大量数据的主要内容,如果未能解决你的问题,请参考以下文章
解决 Elasticsearch 超过 10000 条无法查询的问题
如何使用 PHP 和 MySQL 有效地对大型数据集进行分页?
这个查询有啥问题?从超过 220,000 条记录的 mysql 表中加载数据需要 0.5 到 0.6 秒
使用 CakePHP 的 saveMany() 保存 >10000 条记录