mysql - 网站攻略 : A question about how many SQL queries are enough

标签 mysql

我最近开始公开并慢慢推出一个自制的 CMS。该站点允许进行大量自定义,并朝着国际化和自定义的方向发展,达到不需要源代码的水平。这是一个个人项目,整个目的是看看我能把自己的编程限制推到多远(处理博客、网络漫画和小型论坛的 CMS 的分发问题不是我愿意的)考虑一下,直到我清理它并对其进行更多的工作 - 同样,鉴于它是一个业余项目,我怀疑它与其他更精致的项目相比是否有任何引力......但这些不是关注的主题手头的话题。)

我编写了一系列代码,可以查看每个页面的生成速度和运行的查询次数;平均而言,我看到每页执行 9-13,最多 12 个 MySQL 查询。生成页面的平均时间在 10-20 毫秒之间。现在,在没有任何专业设计经验的情况下,我应该争取的最佳结果是什么?

有什么方法可以减少生成时间(或者,平均每页 15 毫秒,这甚至都不是问题),或者减少大部分内容从中加载的页面上的查询次数的策略一个 MySQL 数据库,包括菜单项之类的东西。

请注意,这是一个非常宽泛的问题;我的目的不是提出一般性问题或引发对话,而是找出减少此类系统可能在服务器上产生的负载(如果有的话)的方法。

最佳答案

  • 使用 PHP opcode cache 将跳过解析和编译成字节码的过程,从而显着减少打开和编译 PHP 脚本所需的时间。

  • 打开 MySQL query cache 通常(尽管不总是)是个好主意。

  • 与其关注查询的数量,不如关注通过优化您的查询来减少这些查询所花费的时间。拥有大量经过优化的小型查询通常比尝试减少查询数量更有效。

  • 使用分析器,例如 XDebug 中内置的分析器.与 KCacheGrind 或 WinCacheGrind 等解释器一起,当您知道要关注什么时,优化代码真的很有帮助。优化对总执行时间贡献微乎其微的东西是不值得的。了解 *CacheGrind 中所有内容的含义是值得的。

我的 PHP 内容管理系统通常在大约相同的时间内加载一个页面(最低 8 毫秒,所有内容都是缓存命中)。但偶尔,当你做一些复杂的事情时,它可能需要超过 500 毫秒。当关注用户体验时,典型时间更重要,而不是离群值,但当关注服务器负载时,平均时间更重要,因此那些 500 毫秒的离群值突然变得非常重要。

关于mysql - 网站攻略 : A question about how many SQL queries are enough,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/914151/

相关文章:

mysql - 将所有数据与特定选择的用户 ID 的数据进行比较?

javascript - Node.js client.emit 仅在第一次尝试后才工作?

php - 想对两个不同的表执行双重 MYSQL INSERT INTO

PHP MySQL 数据库

mysql - 如何对极限语句进行性能调优?

Movable Type 的 MySQL 驱动模块问题

mysql - 如果值为 NULL,则将值递增 1

mysql - 是否可以按时间戳中存储的日期对行进行分组?

mysql - MySQL Workbench-如何在不同名称的同一服务器上克隆数据库?

MySQL : query three times on the same table