带有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 【问题描述】:

我在管理面板脚本中使用了表条带化数据表,当尝试显示来自 mysqlphp 的大量数据时,加载页面需要花费大量时间。

以下是使用数据表的代码:

<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 条记录

spring boot + mybatis批量插入大量数据(超过10000条)

PHP MYSQL 下一个和上一行