在大数据量的应用中,常常需要对数据库配置和sql语句进行优化,以保证应用在负载大数据量时的并发性。mysql内置有分析器profiler
在大数据量的应用中,常常需要对数据库配置和sql语句进行优化,以保证应用在负载大数据量时的并发性。mysql内置有分析器profiler,通过profiler,开发者能够方便快速的了解mysql大概的性能。
使用profiler非常简单,只需设置系统变量“profiling = on”或“profiling = 1”,默认情况下,profiler是关闭的,可以通过命令“select @@profiling;”或“show variables like ‘%profiling%’;”查看profiler状态。如图所示:
执行命令“set profiling = on;”或“set profiling = 1;”后,就能使用profiler了。
例如:假设现在有一个数据库demo,demo里有一个数据表tab_demo,其结构如图所示:
通过命令“select * from tab_demo;”查询表中所有记录,返回结果如图所示:
下面使用profiler查看以上数据库操作的具体情况。运行命令“show profiles;”,返回每次操作花费时间,如图所示:
为了更清楚的查看每次操作数据库具体做了哪些事情,例如:想要查看第4次query操作的具体流程,可以通过命令“show profile for query 4;”,返回结果如图所示:
从图中可以清晰的看到执行一条sql语句的具体流程,包括:初始化,打开表,锁定表等。这样就能大概了解在哪一步花费时间较多,从而可以针对性的对数据库或sql语句进行优化。
总的来说,在进行数据库性能分析时,,profiler可以作为一种简单快速的分析工具,先通过它大概的获取一些信息,再配合其它专门的性能分析工具,可以取得很好的效果。