2016-02-25 95 views
0

我最近设计了一个php/mysql网站。如何优化查询以避免mysql/php连接超时

我我用这个SQL查询

SELECT * FROM upload WHERE aid = '206' AND pin = '0' AND format like '%video%' ORDER BY created DESC 

SELECT * FROM upload WHERE aid = '206' AND pin = '0' AND format like '%image%' ORDER BY created DESC  

SELECT * FROM upload WHERE aid = '206' AND pin = '0' AND format like '%image%' ORDER BY created DESC 

我没有一个大的数据还...也许1000条记录在数据库的索引页。

但是,当我加载页面..它需要8-20秒加载。

当我删除那个sal查询时,加载时间将是正常的。

请指教我解决这个问题的最佳方法。

+1

是您的数据库远程或本地托管 – Ohgodwhy

+0

本地,还我只可以使用localhost作为主机,127.0.0.1不... – partiz

+0

你为什么第二个和第三个查询是平等的? – Ties

回答

0

您正在使用3个不同的SQL查询从同一个表中获取数据。

只使用一个SQL查询就可以得到相同的结果。

所以SQL查询应该如下。

SELECT * FROM `upload` WHERE `aid` = '206' AND `pin` = '0' AND (`format` like '%video%' OR `format` like '%image%') ORDER BY `created` DESC 

有可能是你可能已经包括许多CSS,图片或JavaScript库的机会。

您可以使用下面的网站检查您的网页性能问题。

http://tools.pingdom.com/fpt/

0

事情可能是值得尝试加快速度:

  • 添加合适的索引到你的表(或许aid应该是一个指数?)
  • 这三个查询组合成单个查询(根据Ali Khanusiya的回答)
  • 在您的查询中添加适当的LIMIT子句(例如,LIMIT 1LIMIT 10)t Ø获取结果的子集(您可以使用OFFSET进行分页结果)