MySQL慢查询配置,及解决相关问题

来源:互联网 发布:网络销售客户不说话 编辑:程序博客网 时间:2024/05/16 19:37
在实习中,做一些流程开发,是二次开发,每一个流程打开都会很慢,因为没有源代码,只有class文件,所以先从数据库角度看,在MySQL中有可以在配置文件中配置参数,使MySQL将一些慢查询语句打印出来,这功能会很有用。
1.在my.ini文件中配置如下几个参数
#保存慢查询的配置#保存的文件log-slow-queries=D:\\mysqlSlowQuery.txt#时间超过1秒的查询算慢查询,设置长时间的界限long_query_time=1#记录没有使用索引的查询#log-queries-not-using-indexes#格式化查询语句#log-long-format

这时,我打开一个流程,发现记录在MySQLSlowQuery.txt文件中的慢查询语句,有一条花费了5s多
# Time: 160126  9:40:27# User@Host: root[root] @ localhost [127.0.0.1]# Query_time: 5.109848  Lock_time: 0.039529 Rows_sent: 1  Rows_examined: 448SET timestamp=1453772427;select sysformtem0_.fd_id as fd1_1289_, sysformtem0_.fd_designer_html as fd2_1289_, sysformtem0_.fd_metadata_xml as fd3_1289_, sysformtem0_.fd_display_jsp as fd4_1289_, sysformtem0_.fd_template_edition as fd5_1289_, sysformtem0_.fd_mode as fd6_1289_, sysformtem0_.fd_display_type as fd7_1289_, sysformtem0_.fd_form_file_name as fd8_1289_, sysformtem0_.fd_alter_time as fd9_1289_, sysformtem0_.fd_common_id as fd10_1289_, sysformtem0_.fd_template_id as fd11_1289_, sysformtem0_.fd_key as fd12_1289_, sysformtem0_.fd_model_name as fd13_1289_, sysformtem0_.fd_model_id as fd14_1289_, sysformtem0_.fd_pda_jsp as fd15_1289_, sysformtem0_.fd_isUpTab as fd16_1289_ from sys_xform_template_history sysformtem0_ where sysformtem0_.fd_form_file_name='km/review/xform/define/150805c43b8ac15388feb54428c8f2f1/150805c43b8ac15388feb54428c8f2f1_v1';

这个是一个很简单的查询语句,但是却花费了5s之多,如何做优化呢?这时想到了一点,我们优化查询最经常用的就是添加索引。会不会是因为数据太多,fd_form_file_name没有被加入索引,导致查询慢呢?
查询了该表的索引字段,发现fd_form_file_name真没有加索引


这时为fd_form_file_name字段加入索引
CREATE INDEX sys_xform_template_history_fd_form_file_name ON sys_xform_template_history (fd_form_file_name);

加入索引后,查询速度提高了不止一丁点,只需要0.005s就可以了


0 0