当前位置: 首页 > 面试题库 >

执行更多或复杂的SQL查询,还是使用PHP过滤数据?

李文轩
2023-03-14
问题内容

我正在构建一个将获得大量流量的PHP应用程序。我一直了解到,我应该限制SQL查询的数量(目前,每个访问者大约有15个)。我可以将其限制为使用PHP进行数据过滤和排序的一半左右,但这会更快吗?另外,我可以在查询中使用“
JOIN”来减少查询数量,但这真的比执行多个查询快吗?谢谢!


问题答案:

如果每个访问者有15个查询,则除非您的应用程序很大,否则您很可能做错了什么。

使用PHP而不是MySQL来排序和过滤数据

用PHP进行排序和筛选不会使您的应用程序更快,但肯定会使它变慢,如果给定正确的索引,MySQL的优化速度将非常快,因此您一定会尽可能使用它。

了解数据库索引,它将使您的生活更轻松,并提高应用程序的性能。这是一个链接:

http://www.mysqltutorial.org/mysql-create-drop-
index.aspx

联合查询与多个查询

您问使用联接的执行速度是否比执行多个查询更快。

答案是肯定的,使用给定正确索引的join总是会更快。这也回到了第一个主题,即索引编制。

但是,请记住,连接的效率与您要达到的效率一样高,如果操作正确,它将非常高效,如果操作错误,将非常慢,因此您必须了解正确执行操作的基本知识。

您可以在这里找到join的介绍:

http://blog.sqlauthority.com/2009/04/13/sql-server-introduction-to-joins-
basic-of-joins/



 类似资料:
  • 问题 您要执行的 SQL 语句如:高级的联接或计数。 方案 webpy 没有尝试在数据库之上建立一层模型,而是以尽可能简单的方式查询数据库, 做复杂的查询也很容易。例如: import web db = web.database(dbn='postgres', db='mydata', user='dbuser', pw='') # Query number of entries in `us

  • 问题内容: 我有一个带有许多字段的表。我正在尝试在asp.net中创建搜索过滤器,以便用户可以按一个或多个字段进行搜索。所以基本上我想创建一个包含4个参数的存储过程,如果它不为null,它将把参数附加到WHERE子句中。 TableExample有4列,Col1 Col2 Col3 Col4 我希望有一种方法可以用一个存储过程完成此操作,而不必为每种可能的组合创建一个。 我正在尝试类似的方法,虽然

  • 如何将这个复杂的sql语句更改为JPQL? 这是否可以在JPQL表单中显示?

  • 问题内容: 如何将这些多个查询合并为一个(可以吗?) 顺便问一下,如果在完成所有查询后再执行mysql_close($ db),那会更好吗? 问题答案: 传递到作为第五个参数。 例: 当您使用mysql_fetch_ *或mysql_num_rows或mysql_affected_rows时,仅第一条语句有效。 例如,以下代码,第一个语句为INSERT,则无法执行mysql_num_rows和my

  • 我目前正在构建一个REST API,我希望客户机能够在其中轻松地过滤特定实体的大多数属性。将QueryDSL与Spring Data REST结合使用(Oliver Gierke的一个示例),允许客户机通过组合引用属性的查询参数(例如)进行筛选,从而使我可以轻松地获得我想要的内容的90%。 我甚至可以通过实现接口(例如,对于不区分大小写的搜索或部分字符串匹配)自定义查询参数和实体属性之间的映射。这

  • 如何查询具有复杂类型(如映射/数组)的RDD?例如,当我编写此测试代码时: 我认为语法应该是这样的: 或 但我明白了 无法访问类型MapType(StringType,StringType,true)中的嵌套字段 和 组织。阿帕奇。火花sql。催化剂错误。包$TreeNodeException:未解析的属性 分别地