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

时间:2018-10-27 05:57:49

标签: php mysql laravel mysqli eloquent

如何在MySQL仅读取操作中处理超过1000万条记录。 我有两个表,一个是company,其中保存了公司的记录,即公司名称和所提供的服务,因此有2列,大约有300万条记录,还有另一个表employee,大约有40列,大约一千万条记录。尝试获取数据时,甚至是简单的查询(例如

Employee::paginate(100);
//In terms of mysql it
//select count(*)  as aggregate from 'employee'; 
//Select *  from 'employee' limit 100 offset 0;

过去大约需要30秒钟,而现在却像永远一样。

如果我想进行搜索,应用过滤器或要联接两个表,即companyemployee,那么有时它可以工作,有时它会崩溃并在SQL中给出很多错误/警告服务器日志。 任何人都可以告诉我如何在不导致SQL Server崩溃的情况下更有效地处理此数量的记录,尤其是在高通信量时间内。 目前,我只有主键,即ID和联合ID已编制索引。

与SO上进行的所有类似查询相比,这是一种重复的帖子,但是这些对我没有多大帮助。

我一直关注的问题

  1. Best data store for billions of rows
  2. Handling very large data with mysql
  3. https://dba.stackexchange.com/questions/20335/can-mysql-reasonably-perform-queries-on-billions-of-rows
  4. Is InnoDB (MySQL 5.5.8) the right choice for multi-billion rows?
  5. How big can a MySQL database get before performance starts to degrade
  6. Handling millions of records in arrays from MySQL in PHP?

1 个答案:

答案 0 :(得分:1)

进行以下更改: