我正在开发一个项目,我需要从MsSQL数据库中检索大量数据并处理这些数据。数据检索来自4个表,其中2个表有800-1000行,但另外两个表各有55000-65000行。
执行时间不可忍受,所以我开始重写代码,但我对PHP和MsSQL缺乏经验。我对PHP atm的执行是在localhost:8000中。我正在使用“php -S localhost:8000”生成服务器。
我认为这是我的一个问题,这是一个糟糕的服务器,用于大量的数据。我想过XAMPP,但是我需要一个服务器,我可以毫无问题地使用MsSQL驱动程序来使用这些功能。
我无法更改MySQL的MsSQL或其他类似的更改,公司希望这样......
您能否就如何改善表现给我一些建议?我可以用来改善PHP执行的任何服务器?非常感谢你提前。
答案 0 :(得分:1)
PHP执行应该是您最不关心的问题。如果是的话,很可能你会以错误的方式处理事情。所有PHP应该做的是对数据库运行SQL查询。如果您不使用PDO,请考虑:http://php.net/manual/en/book.pdo.php
首先看一下SQL查询的结构方式,以及如何优化它。如果完全怀疑,您可以尝试在此处发布查询。请注意,如果您无法发布封装问题的单个SQL查询,那么您可能会从错误的角度处理问题。
我从你的帖子中假设你没有办法改变数据库模式,但如果是这样,那将是第二个行动方案。
答案 1 :(得分:0)
尽量在SQL Server中进行尽可能多的数据处理。不要进行数据连接或可以在RDBMS中完成的其他类型的数据处理。
我见过PHP代码,它根据几个条件从多个表中检索数据并匹配行。这只是滥用的一个例子。
还尝试处理SQL中的集合中的数据(无论是MS *还是My *),并尽可能避免逐行处理。优化器将输出更高效的计划。
答案 2 :(得分:0)
这是一个小型数据库。真。我的建议:
- 对表格使用分页并按部分(按部分)获取数据
- 使用表的索引
- 尝试找到更强大的服务器。托管公司经常为一千个用户的数据库使用一个数据库服务器,速度非常慢。我很痛苦,最后买了专用的服务器。