Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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
Php 如何在mysql和laravel中处理数百万条记录_Php_Mysql_Laravel_Eloquent - Fatal编程技术网

Php 如何在mysql和laravel中处理数百万条记录

Php 如何在mysql和laravel中处理数百万条记录,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,如何在MySQL只读操作中处理超过1000万条记录。 我有两个表,一个是公司,它保存公司的记录,即公司名称和提供的服务,因此有两列,大约有300万条记录,另一个是员工,大约有40列,大约有1000万条记录。在尝试获取数据时,即使是简单的查询,如 Employee::paginate(100); //In terms of mysql it //select count(*) as aggregate from 'employee'; //Select * from 'employee' l

如何在MySQL只读操作中处理超过1000万条记录。 我有两个表,一个是
公司
,它保存公司的记录,即公司名称和提供的服务,因此有两列,大约有300万条记录,另一个是
员工
,大约有40列,大约有1000万条记录。在尝试获取数据时,即使是简单的查询,如

Employee::paginate(100);
//In terms of mysql it
//select count(*)  as aggregate from 'employee'; 
//Select *  from 'employee' limit 100 offset 0;
过去需要30秒,现在需要一辈子

如果要执行搜索、应用筛选器或要联接两个表,即
公司
员工
,则有时它会工作,有时会崩溃,并在SQL server日志中显示大量错误/警告。 有谁能告诉我如何更有效地处理这些记录,而不会导致SQL server崩溃,特别是在高流量时间。 目前,我只有主键,即ID和关节ID被索引

这是一种重复的帖子,相比之下,所有类似的查询都是如此,但这些并没有对我有多大帮助

我一直在问这些问题

  • 进行以下更改:

    • 根据需要在数据库中使用
      分区
      。(例如)
    • 使用
      simplePaginate
      方法代替
      paginate
      。它不查询计数。()
    • 尝试改进您的
      索引
      。它影响着我们。(谷歌:mysql索引最佳实践)
    • 如果需要行数,请使用
      缓存
      驱动程序(如
      redis

    我将尝试使用
    分区
    ,但我认为这不会有多大帮助,因为所有记录都是在一天内上传的。无法使用
    simplePaginate
    ,因为我想显示搜索或筛选器和分页的记录总数。分区可以在各种条件下完成。但这取决于你的疑问。我个人是根据日期申请的,因为我所有的疑问都取决于日期。这对我帮助很大。您可以实现自定义分页。您可以使用redis在不同条件下保存数据计数。例如
    employees.it.male=30
    employees.it.male=30
    employees.it.total=60
    ,在it部分添加新男性员工时,只需增加
    employees.it.male
    值。然后,当按部门和性别进行筛选时,您可以使用这些值来获取记录总数。“employee”是一个字符串,因此您的示例查询不会产生太多的错误sense@Strawberry我正在使用雄辩的ORM。所以我没有直接使用原始sql查询。我写这篇文章只是想让大家知道这个雄辩的问题会变成什么。