首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让PHP或MySQL来做繁重的工作哪一个更好?

问让PHP或MySQL来做繁重的工作哪一个更好?
EN

Stack Overflow用户
提问于 2011-11-05 00:07:01
回答 4查看 509关注 0票数 2

我一直在用PHP语言为我的站点构建这个自定义搜索函数,它会根据最终用户提供的选项和输入逐步构建MySQL查询。它在我的本地服务器上运行得很好,但是当我把它上传到生产站点时,它运行起来超级慢。我对PHP和MySQL编程比较陌生,所以我对一般的项目和未来的项目都很好奇:

在运行搜索查询时,是让一个复杂、精确的MySQL查询过滤数据并返回结果以供PHP显示,还是运行一个简单的MySQL查询并从数据库中获取一堆数据并让PHP过滤数据然后显示结果?

EN

回答 4

Stack Overflow用户

发布于 2011-11-05 00:21:30

这是一种平衡的行为。以下是我的建议:

  • 使用FULLTEXT加快字符串搜索速度。
  • 对WHERE子句中的字段进行排序,以便首先对列进行索引,然后是数字、日期和文本字段。这将通过过滤昂贵的列来减少负载,减少数据库必须做的工作量。
  • 在处理大型数据集时避免排序,并将此处理转移到MySQL代码中,因为这将使MySQL不必在查询中的每个点对数据进行排序。
  • 对最常用或搜索成本最高的字段进行索引。当您可以轻松地执行两个或更多查询时,
  • 不会使用大量联接。在一些大型表上具有10或20个连接的查询可能会完全杀死您的database.
  • UNION对于在同一个表上一次执行几个SELECT查询非常有用,而不是使用or执行复杂的逻辑。

一般来说,最优的查询应该足够了。在一些特殊情况下,用PHP做这项工作是有用的,但是数据库应该足够快,可以满足99%的情况。

票数 3
EN

Stack Overflow用户

发布于 2011-11-05 00:22:52

如果数据库被多个web服务器访问,那么使用MySQL服务器来做大量处理可能不是一个好主意。其次,如果你使用产生大量数据的查询,这将花费你的数据很长一段时间来传输到web服务器,并且你将不得不在php中做更多的处理。

另一方面,MySQL使用了大量的优化,以使其有效地获取数据。

所以这完全取决于你在做什么

票数 1
EN

Stack Overflow用户

发布于 2011-11-05 00:13:16

我认为你可以将它们组合在一起以获得最好的结果。首先也是最重要的,运行精确匹配或真正接近匹配的查询。基本上,如果有人搜索页面的确切名称,您只需要返回该名称(=而不是LIKE)。然后,如果他们把第一部分做对了(比如“words%”)。最后,构建一个更复杂的应用程序,让MySQL来做繁重的工作。这确保了当用户提供最好的数据时最快的返回。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8012261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档