php - PHP 循环中的 SQL 查询

标签 php mysql optimization content-management-system

所以我最近接管了内部内容管理系统的维护工作,而数据库优化并不是我的专业领域。

无论如何,当我查看代码时,有几件事引起了我的注意。

PHP 代码有点像“肉丸意大利面”,几乎没有注释。

但最重要的是:据我所知,最初的程序员决定完全放弃数据库代码中的表连接(隐式和显式)。

例如这里是显示页面列的过程:

从数据库中获取元素列表 为每个元素调用一个子例程来检查显示权限,如果成功,则调用另一个子例程来获取元素的 html 数据。

每个子例程有效地为每个元素调用一个单独的查询。我认为,权限步骤涉及查询两个单独的表。

目前性能并不是真正的问题,我也没有被要求调查这个问题。尽管我认为页面请求有点慢。

是否值得尝试重写 SQL 内容?我认为增加可维护性最终是值得的,如果将来可扩展性成为问题,这将使我的事情变得更容易。

或者它真的没有我想的那么糟糕吗?也许我只是 react 过度了。专家意见将不胜感激。

最佳答案

重构是开发过程的重要组成部分。忽视这一事实意味着 future 会出现更多问题。部分问题在于,没有多少管理者了解持续重构的重要性。
我建议您阅读 Joshua Kerievsky 的“Refactoring to Patterns”,其中有许多很好的示例,说明如何通过实现新的设计方法来安全地更改现有代码。

关于您关于 SQL 查询的问题,它可能是也可能不是您需要更改的第一件事。

关于php - PHP 循环中的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7301517/

相关文章:

optimization - 在 TensorFlow 中停止梯度优化器

PHP max() 和 min() 不同类型的奇怪行为

c++ - 如何管理指向已引用对象内部数据的 shared_ptr?

PHP首先将字符串初始化为 bool 值

mysql - 帮助查询各自酒店下特定日期之间的免费客房分组

php - 如何使用 CodeIgniter 删除 HTML 表和 MySQL 中的选定行?

php - 使用mysql_real_escape_string存储后保持textarea输入格式

php - 使用 Angular.js 的 HTTP POST

php - 如何为 "Price"设置自定义表单输入字段?

PHP:索引数组中索引的真正含义是什么?