我似乎无法找到问题所在。
我的主页需要5秒才能加载,我怀疑它是因为MySQL。当我在浏览器中输入我的网站网址时,我必须等待5秒才会加载。
我有运行intel celeron的专用服务器,带有1GB RAM的centos。我的数据库大小约为650mb,有20万条记录,我为日期,id等创建了索引。
这是我在主页中使用的SQL查询:
select `id`,`title`,`desc`,`contribution`,`date`,`sponsored`
from tbl_releases where date <= CURRENT_DATE() AND approved='1'
order by `date` desc,`sponsored` desc,`con` desc,`id` desc
limit 100
我尝试过所有的事情,比如
P.S:数据库大小对性能有影响吗?我在数据库中有超过50%的垃圾,删除无用行有助于提高性能?
答案 0 :(得分:6)
有很多原因导致您的网站速度变慢。
MySQL可能是一个原因,因此请务必清理数据库,创建正确的索引,使用Memcache等。还可以使用EXPLAIN
分析您的选择查询Here是我撰写的关于优化网站的文章。
答案 1 :(得分:2)
一些想法:
我怀疑你需要每隔时间运行查询。将数据缓存到您在主页上包含的静态文件中。定期或在数据更改时重新生成文件。
为WHERE
子句中使用的列添加索引可以大大缩短SELECT
时间(以减慢INSERT
s为代价)。如果您已有索引,请使用EXPLAIN SELECT
命令确保它正在使用它们。
200k行650 MB,如果你想知道你是否在该表中存储(?)缩略图。如果是这样,那可以解释它。数据库针对大量微小数据进行了优化。文件系统针对较少数量的较大数据块进行了优化。如果可以将任何大量数据迁移到文件,您将获得更好的性能。
实际上,如果我正确地阅读它,你根本没有确认在数据库中花费的时间。在代码中使用基准测试来跟踪时间的变化。在脚本的开头和结尾或在可疑部分的开头和结尾使用$_start = microtime(1);
和echo "Done in " . number_format(microtime(1) - $_start, 2) . " seconds.<br>";
。
答案 2 :(得分:1)
那么,从CLI运行查询需要多长时间?
如果它实际上是你的数据库,我会感到惊讶。 200K行不是那么大。
如果查询具有正确的索引,则查询时间将随着时间大小的日志而增加;否则就是线性的。
答案 3 :(得分:1)
使用Memcache Memcache将有助于提高服务器的性能
答案 4 :(得分:0)
如果您将结果导入TABLE,则Internet Explorer(至少对于某些版本而言)会使其变慢。你尝试过其他浏览器吗?
答案 5 :(得分:0)
“我因为MySQL而高度怀疑它”
了解&gt;怀疑。
所以衡量一下吧!使用Firebug或Chrome开发者工具来测量页面速度。
关于4号:那是相当高科技的。首先得到“低调的果实”。