Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 使用Datatables处理Laravel中大量行的最佳方法是什么?_Json_Database_Laravel_Eloquent_Laravel Query Builder - Fatal编程技术网

Json 使用Datatables处理Laravel中大量行的最佳方法是什么?

Json 使用Datatables处理Laravel中大量行的最佳方法是什么?,json,database,laravel,eloquent,laravel-query-builder,Json,Database,Laravel,Eloquent,Laravel Query Builder,我在显示3000多行时遇到问题(这个数字将以指数级的速度增加) 我目前正在从MYSQL数据库返回集合中的数据。我应该使用Laravel Elount或查询生成器来提高控制器的性能吗 如果我以JSON文件格式返回数据,这是否有助于加快速度 是否有一种方法可以添加、删除、编辑数据表中的行,而不必每次实际返回视图 如果你能提供一些有帮助的文章来解释,那就太好了。我试图找到一些东西,让我走上处理大量数据的最佳途径,但运气不佳 问候,, James当您将所有这些数据提取到后端时,我建议不要使用有说服力的模

我在显示3000多行时遇到问题(这个数字将以指数级的速度增加)

  • 我目前正在从MYSQL数据库返回集合中的数据。我应该使用Laravel Elount或查询生成器来提高控制器的性能吗

  • 如果我以JSON文件格式返回数据,这是否有助于加快速度

  • 是否有一种方法可以添加、删除、编辑数据表中的行,而不必每次实际返回视图

  • 如果你能提供一些有帮助的文章来解释,那就太好了。我试图找到一些东西,让我走上处理大量数据的最佳途径,但运气不佳

    问候,,
    James

    当您将所有这些数据提取到后端时,我建议不要使用有说服力的模型。雄辩的模型相当沉重。相反,您可以使用轻量级stdclass:

    $users = DB::table('users')->get();
    
    get方法返回一个包含结果的lightize\Support\Collection,其中每个结果都是PHP stdClass对象的实例

    除此之外,你还应该考虑对结果进行分页。获取、转换和呈现大量项目列表通常会导致糟糕的用户体验

    当然,您可以(也应该)告诉数据库尽可能多地进行繁重的工作。数据库设计用于处理大量数据

    使用相同数据进行批量更新:

    大量插入:

    更灵活的批量更新/插入包:

    另外,请看这个示例:


    这就是使用子查询中的数据更新表的方法。这是一个博士后的例子,可能不适合你的情况。我只是想让你了解星展银行的能力。如果您对原始查询感到满意,您的数据库引擎可以为您提供最高效、最灵活的工具。

    对于处理海量数据,它总是首选它,或者您可能需要检查它

    为了在控制器中获得更好的性能,我应该使用Laravel Eloquent还是Query Builder

    对于使用模型的简单查询和阅读来说,Elount更容易,因为它使用活动记录模式,而builder处理查询和复杂性的速度更快,您可能需要检查一下

    如果我以JSON文件格式返回数据,这是否有助于加快速度

    json或集合都由Laravel处理,不会对IMHO造成太大影响,但是如果您考虑将一些DB记录保存在缓冲区json文件中:

    让我们考虑这些场景(虽然数据库总是巨大的),

  • 您的数据库上只有很少甚至没有事务,在Json文件中为其编制索引将加快处理过程,同时还要考虑安全措施
  • 您的数据库上有最小到中等的事务,json就没有那么有用了
  • 如果您有大量事务,最好开始考虑mongodb或您喜欢的NoSQL DB
  • 是否有一种方法可以添加、删除、编辑数据表中的行,而不必每次实际返回视图

    添加、删除或更新可以通过单个或批量方式完成,关于第三个问题,是的,您可以创建一个控制器函数并通过ajax进行通信


    这个过程是:创建一个控制器函数来查询数据库,为这样的函数创建一个路由,然后在前端通过ajax查询这个函数,您可能需要检查。

    您永远不需要显示超过100-200行(甚至500行也可能太多)。始终使用分页。使用索引进行快速搜索和分页显示。您应该始终通过请求传递页码(无论是AJAX还是经典HTTP POST重定向获取值)。这适用于在屏幕上显示数据,因为方法就是这样的——您永远不需要在屏幕上看到超过200个结果。