最佳性能的平均查询数
Average number of queries for best performance
我希望你们不要介意我问一个题外话和幼稚的问题。但是,我找不到任何令人满意的答案。
最大,平均一个页面上必须允许处理多少个查询以呈现输出(我正在寻找质量方面)。例如,在电子商务应用程序中,平均需要 4 到 5 个查询。查询次数最少,响应时间越短。因此问题。
这个问题与任何编程平台无关。但是,让我们以 PHP 和 MySql 为例。
实际上,很难说一个页面必须触发多少查询。这取决于
以下因素:
Complexity of Application
与普通网页相比,在大型、复杂和面向数据的应用程序中,网页中显示的数据量很大。因此,它可能需要您触发更多数量的查询来获取数据。
Types of Queries
您可以选择触发更多查询来获取单个数据,或者您可以使用复杂的 Join 一次性从多个表中获取所有数据。因此,在这里您要在否之间进行权衡。复杂的 JOIN 需要 db 调用 VS 处理量和内存。如果您要连接的表不是很大,那么连接是最佳选择。但是,如果您的表很大,那么单独调用 db 来获取数据可能更有意义。
Deployment Configuration
如果你的应用服务器和数据库服务器配置在同一台机器上,那么进行多次查询可能意义不大。但是,如果您的数据库服务器和应用程序服务器位于不同的地方,则必须使用最少的查询或必须使用具有更多连接的单个查询,以避免网络延迟。
执行一个复杂的查询需要半秒的时间不如 运行5 个简单的查询总共需要 1/10 秒的时间来完成。
拥有更多的简单查询也可能是一种权衡,以使您的代码更有条理。例如,与手动编写查询相比,ORM 通常会调用更多的数据库,但它们使应用程序的开发变得更加简单。
不过,最终,任何复杂到需要担心数据库调用次数的应用程序都足够复杂,以至于它应该尽可能地使用缓存层。只要没有需要很长时间加载的页面,就真的不值得挑剔查询的确切数量。
我开发了许多网页,每页最多有 50 个查询。所有的速度都可以接受。诀窍不是"number of queries",而是他们的"speed"。在最好的情况下,查询花费的时间不到 10 毫秒。其中 50 个还不到半秒。在这样的页面中,页面的 rendering 可能需要比这更长的时间。也就是说,MySQL 不是瓶颈。
如何加快查询速度?简单查询。点查询。好的索引(通常 'composite')。
如何降低查询速度? EAV。 "Showing 10 results out of 123456"。 Table 次扫描。
想要了解更多详情?让我们看看一些查询。
我希望你们不要介意我问一个题外话和幼稚的问题。但是,我找不到任何令人满意的答案。 最大,平均一个页面上必须允许处理多少个查询以呈现输出(我正在寻找质量方面)。例如,在电子商务应用程序中,平均需要 4 到 5 个查询。查询次数最少,响应时间越短。因此问题。 这个问题与任何编程平台无关。但是,让我们以 PHP 和 MySql 为例。
实际上,很难说一个页面必须触发多少查询。这取决于 以下因素:
Complexity of Application
与普通网页相比,在大型、复杂和面向数据的应用程序中,网页中显示的数据量很大。因此,它可能需要您触发更多数量的查询来获取数据。
Types of Queries
您可以选择触发更多查询来获取单个数据,或者您可以使用复杂的 Join 一次性从多个表中获取所有数据。因此,在这里您要在否之间进行权衡。复杂的 JOIN 需要 db 调用 VS 处理量和内存。如果您要连接的表不是很大,那么连接是最佳选择。但是,如果您的表很大,那么单独调用 db 来获取数据可能更有意义。
Deployment Configuration
如果你的应用服务器和数据库服务器配置在同一台机器上,那么进行多次查询可能意义不大。但是,如果您的数据库服务器和应用程序服务器位于不同的地方,则必须使用最少的查询或必须使用具有更多连接的单个查询,以避免网络延迟。
执行一个复杂的查询需要半秒的时间不如 运行5 个简单的查询总共需要 1/10 秒的时间来完成。
拥有更多的简单查询也可能是一种权衡,以使您的代码更有条理。例如,与手动编写查询相比,ORM 通常会调用更多的数据库,但它们使应用程序的开发变得更加简单。
不过,最终,任何复杂到需要担心数据库调用次数的应用程序都足够复杂,以至于它应该尽可能地使用缓存层。只要没有需要很长时间加载的页面,就真的不值得挑剔查询的确切数量。
我开发了许多网页,每页最多有 50 个查询。所有的速度都可以接受。诀窍不是"number of queries",而是他们的"speed"。在最好的情况下,查询花费的时间不到 10 毫秒。其中 50 个还不到半秒。在这样的页面中,页面的 rendering 可能需要比这更长的时间。也就是说,MySQL 不是瓶颈。
如何加快查询速度?简单查询。点查询。好的索引(通常 'composite')。
如何降低查询速度? EAV。 "Showing 10 results out of 123456"。 Table 次扫描。
想要了解更多详情?让我们看看一些查询。