IT互联网小助手|收藏|SQL查询优化技巧,提升网站访问速度!( 三 )



缓存有一个生命周期 , 具体地说是实例化对象有一个生命周期 。 如果你正在查看跨请求的查询结果 , 那么你需要实现一个持久对象缓存 。 然而不管怎样 , 你的代码应该负责设置缓存 , 并且当基础数据变更时让缓存失效 。
换位思考
不仅仅是调整查询或添加索引 , 还有其他方法可以加快查询的执行速度 。我们查询的最慢的部分是从客户ID到产品ID再到加入表格所做的工作 , 我们必须为每个客户做到 。
我们是不是可以在需要的时候抓取客户的数据?如果是那样 , 那我们就只需要加入一次 。
您可以通过创建数据表来存储许可数据 , 以及所有许可用户标识和产品标识符来对数据进行非规范化(反规范化)处理 , 并针对特定客户进行查询 。
您需要使用INSERT / UPDATE / DELETE上的MySQL触发器来重建表格(不过这要取决于数据来更改的表格) , 这会显着提高查询数据的性能 。
类似地 , 如果一些连接在MySQL中减慢了查询速度 , 那么将查询分解为两个或更多语句并在PHP中单独执行它们可能会更快 , 然后可以在代码中收集和过滤结果 。Laravel 通过预加载在 Eloquent 中就做了类似的事情 。
如果您有大量数据和许多不同的自定义帖子类型 , WordPress可能会在wp_posts表上减慢查询速度 。如果您发现查询的帖子类型较慢 , 那么可以考虑从自定义帖子类型的存储模型移动到自定义表格中 - 更多内容将在后面的文章中介绍 。
结论
通过这些查询优化方法 , 我们设法将查询从8秒降低到2秒 , 并且将查询次数从4次减少到1次 。 需要说明的是 , 这些查询时间是在我们开发环境运行时记录的, 生产环境速度会更快 。
这对追踪查询缓慢及其修复等问题是一个有用的指南 。优化查询看起来可能像一个可怕的任务 , 但只要你尝试一下 , 并取得一些初步的胜利 , 你就会开始找到错误 , 并希望做出进一步改善 。
如果你有任何优化查询的建议或你喜欢使用的工具? 可以在评论中留言分享给大家 。


推荐阅读