log是个好东西,一般默认就有,还能提供一些数值证据,可以用来做大体的分析。
先看cpu log,找到花费CPU时间比较长的操作,发现瓶颈主要在数据库操作。然后再看mysql的slow query log,果然很慢:
# Fri Apr 27 20:55:28 2007 (数据库请求发生的时间)
# Query_time: 15 Lock_time: 1 Rows_sent: 0 Rows_examined: 0 (查询共用了15秒,其中锁住表1秒)
use moumente_secret; (用的哪个表)
SELECT * FROM sessions WHERE (session_id = ‘32fddb1d40cc3e3af62c21327fc669c1′) LIMIT 1 (执行的什么sql语句)
可以优化的地方包括:
·利用好索引,把最常用的查询条件变成索引
·非规范化,合并数据
·不要让Rails执行太复杂的操作
·缓存常用数据和常用页面