如何使用PHP在mysql数据库中管理大量行

时间:2019-04-17 06:14:57

标签: php mysql

实际上,我们有一个已经用PHP / MYSQL开发的应用程序。 直到用户数量不超过5K为止,它运行良好。 但是现在用户数量正在增加,并且网站的性能每天都在下降。目前,我们的数据库中有超过20万条记录。但是在获取数据并执行其他任何操作时,效果并不理想。

我们希望每个人都对我们现在需要做的事情提出建议

  1. 我们要更换服务器
  2. 我们应该从Core PHP转向任何其他框架。
  3. 我们要更改数据库
  4. 或其他解决所有这些问题的方法

谢谢。

2 个答案:

答案 0 :(得分:0)

  1. 这取决于您现在拥有哪种服务器。 2.将现有的应用程序从核心PHP重写到PHP框架可能并不像看起来那样容易,原因是很容易错过(经常)在文档中缺少的某些功能。如果您打算保留该应用程序,那么肯定值得考虑,但是... 它还取决于您使用的PHP版本。如果它是= <5.6,那么我认为至少值得考虑将应用程序升级到> PHP7(根据gbksoft快1.8倍)。 但是,我建议您首先检查一下查询,因为您可以通过更正查询和正确索引数据库列来提高查询速度。 可能会因为某些代码需要花费很长时间(不必要地)执行并且可以升级而导致应用程序的速度不能令人满意。

  2. 这也取决于-请记住,如果在PHP中使用MySQL和mysqli Object,它将成为一场噩梦。我将检查数据库结构是否规范化,是否存在索引以及查询是否进行了优化(在前面提到)。

  3. 花一些时间来理解代码,以查找可以更新和改进的内容,因为这可能是应用程序的最大问题(它按您编写的方式工作,但其工作方式则不同)。尝试升级PHP版本,然后减少不需要的代码,改进现有代码,检查您的数据库结构(如果可以在那里进行改进)。如果那看起来不太好(一切都完美),则考虑更改服务器(如果您使用的是Apache,我建议您使用Nginx),或者甚至更改您正在运行的服务器托管公司,因为这可能无法处理许多请求。

很多想法都在重复,对此感到抱歉。

总结:首先检查如何改进现有代码以及数据库的性能(可以改进的地方),然后考虑更改服务器,然后将应用程序重新编写到框架中。 (如果代码编写不当,框架不会发生太大变化,因此我认为可以将其用作最后一点,因为这样做可能也是最有问题的事情。)

答案 1 :(得分:0)

200k不多。例如,请参见此页面:https://wiimmfi.de/comp-stat/

有2个表,每个表的条目均大于60万(1个表有一个鬼,一个无鬼,总共1.25 Mio记录)。为了获取页面数据,UNION选择了两个表的记录。为了支持不同的语言以及驾驶员,车辆,管制员,国家等的名称,使用了3个内部联接和8个左侧联接。在管理员模式(带有一些其他信息)中,该页面的构建时间为25-28毫秒。该时间是从第一个PHP命令(包括任何内容)开始直到发送关闭主体部分的时间,并且包括该页面和用户管理所需的所有查询。

网站在“英特尔®至强®CPU E3-1246 v3 @ 3.50GHz”上运行。服务器的安装时间是2013年,所以今天只是中等水平的硬件。

我要说的是:如果精心设计表(成员和键;遵循规范化规则:https://en.wikipedia.org/wiki/Database_normalization),即使您有数百万条记录,也可以非常快速地访问数据。

关于框架的说明:它们有助于创建用户界面。但是他们并没有为您优化数据库:这对于开发人员(团队)而言总是一项工作。