在MySQL和PHP/Laravel中处理数百万条数据记录

在MySQL和PHP/Laravel中处理数百万条数据记录,php,mysql,performance,laravel,search,Php,Mysql,Performance,Laravel,Search,我有一个名为修订版(如下图所示)的活动记录表,它是为一个大型学习管理系统构建的,主要记录表上的CRUD操作(例如,谁在什么时间对哪个对象做了什么) 此表最多可包含300万条数据记录。我想用PHP/Laravel在前端构建一个搜索功能 现在我的问题是>对于数百万个数据记录的表,在代码级、数据库级上有什么东西,或者有第三方的东西来支持这些问题,我应该考虑什么样的高性能的搜索功能呢? 我有使用PHP/Laravel、Python/Django、Ruby等构建系统的经验,但我从未遇到过这样的情况,处理

我有一个名为修订版(如下图所示)的活动记录表,它是为一个大型学习管理系统构建的,主要记录表上的CRUD操作(例如,谁在什么时间对哪个对象做了什么)

此表最多可包含300万条数据记录。我想用PHP/Laravel在前端构建一个搜索功能

现在我的问题是>对于数百万个数据记录的表,在代码级、数据库级上有什么东西,或者有第三方的东西来支持这些问题,我应该考虑什么样的高性能的搜索功能呢? 我有使用PHP/Laravel、Python/Django、Ruby等构建系统的经验,但我从未遇到过这样的情况,处理数百万条数据记录。因此,请记住我的知识/经验水平。我没有这方面的经验

注意:搜索将是一种高级搜索,使用户能够使用不同的条件和参数、更改的对象、更改对象的人、更改对象的时间等进行搜索


如果我的问题仍然不清楚,请告诉我。

我建议您在保存到主数据库时,查看并将活动记录保存到其存储器中。然后,您可以轻松搜索任何字段。Elasticsearch可以存储无模式的JSON文档,如果您更喜欢SQL方式,还有另一个搜索引擎-

在表中插入无数行是没有问题的。当您尝试在表上执行非平凡的选择时,会出现性能问题。你提到“搜索”;您必须限制“用户”可以搜索的内容。但至少要尝试一下他们可能想要搜索的东西

您提到“搜索对象”,但我没有看到名为object的专栏。给定对象可能有多少行?你需要所有的行吗?还是选定的?(无论表大小如何,对象上的索引都可能使查询高效。)


第三方软件有时会妨碍处理非常大的表。当心。

虽然你的问题很清楚,但它非常广泛,会吸引基于意见的答案,这使它脱离了本网站的主题。我投票决定结束。这是一个需要广泛讨论的问题。你能解释一下我在哪里可以问这个问题吗?所以如果我使用elasticsearch,CRUD操作需要在这两者上都进行吗?我的MySQL数据库和Elasticsearch实例?是的。Laravel具有特殊的模型监听器,因此当您更改基本模型对象时,可以轻松地在其他存储中CRUD数据