【发布时间】:2015-12-01 23:29:43
【问题描述】:
正在开发 Laravel 4.2 应用程序。决定更新到最新的稳定版 5.1.15。还在旧版本的宅基地上,所以我想我也会更新它。
完成了所有升级步骤等...启动并运行,但主页,根据 laravel 调试栏有 304 个查询(遍历美国邮政编码的长表),需要 80- 120 秒加载。之前在 4.2 和 homestead vagrant box 1.6 上需要 2-3 秒。
解决了一天的问题,我注意到 homestead vagrant box 版本 0.2.0 和 0.2.1 之间的巨大差异,其中从 mysql 5.5 到 5.6 的更新似乎是主要区别。
为了复制数据库,我一直在使用 Sequel Pro 导出和导入 在各种宅基地流浪者盒子上。
无论如何,旧应用程序 (laravel 4.2) 和新应用程序 (laravel 5.1.15) 上的相同代码在任何 homestead vagrant box 0.2.0 及更低版本上都可以正常工作,并且需要一分钟以上才能加载主页宅基地 vagrant box 0.2.1+。
我需要对 MySQL 5.6 做些什么来优化性能吗?
【问题讨论】:
-
尝试重建索引。还要检查你是否正确地索引了东西,所以你在哪里查询
WHERE column = ?那么列应该有一个索引? -
如果您将这部分代码提供给它进行 304 次查询,那就太好了。
-
您的主页有 304 个查询,实际上让我想起了我曾经读过的一个故事:code.google.com/p/memcached/wiki/TutorialCachingStory ;-)
-
当然,如果美国邮政编码的长表不经常更改,那么您可以缓存它们,您将获得性能,您将减少许多查询。
-
我完全支持缓存,如果必须的话,甚至可以将页面设为静态,但我更关心找出 MySQL 5.5 和 5.6 之间的区别,以便我可以注意其他问题。