本文中介绍的系统优化主要针对前端和后台这两方面(后台方面主要对SQL语句和数据存储进行了优化)下文中我们将介绍一些优化技巧和经验
技巧
如何查出效率低的语句?
在MySQL下在启动参数中设置 logslowqueries=[文件名]就可以在指定的日志文件中记录执行时间超过long_query_time(缺省为秒)的SQL语句你也可以在启动配置文件中修改long query的时间如
# Set long query time to seconds
long_query_time=
如何查询某表的索引?
可使用SHOW INDEX语句如
SHOW INDEX FROM [表名]
如何查询某条语句的索引使用情况?
可用EXPLAIN语句来看一下某条SELECT语句的索引使用情况如果是UPDATE或DELETE语句需要先转换为SELECT语句
如何把导出INNODB引擎的内容到错误日志文件中?
我们可以使用SHOW INNODB STATUS命令来查看INNODB引擎的很多有用的信息如当前进程事务外键错误死锁问题和其它一些统计数据如何让该信息能记录在日志文件中 呢?只要使用如下语句创建innodb_monitor表MySQL就会每秒钟把该系统写入到错误日志文件中
CREATE TABLE innodb_monitor (a INT) ENGINE=INNODB;
如果你不再需要导出到错误日志文件只要删除该表即可
DROP TABLE innodb_monitor;
如何定期删除庞大的日志文件?
只要在启动配置文件中设置日志过期时间即可
expire_logs_days=
注意事项
重点关注索引
下面以表TSK_TASK表为例说明SQL语句优化过程TSK_TASK表用于保存系统监测任务相关字段及索引如下
ID主键
MON_TIME监测时间建了索引
STATUS_ID任务状态与SYS_HIER_INFOID建立了外键关系
注MySQL自动会为外键建立索引在本次优化过程中发现这些自动建立的外键索引会对SQL语句的效率产生不必要的干扰需要特别注意!
[] []