mysql use 很慢_mysql use db后很卡解决_MySQL

bitsCN.com

mysql use db后很卡解决

平时自己使用的一台mysql,use db之后,总是感觉很卡,按完回车要快1s才能返回。觉得有什么蹊跷,就打开了general log,发现简单的use test,mysql实际执行了很多内容:

Sql代码

130603 16:02:11 2 Query SELECT DATABASE()

2 Init DB test

2 Query show databases

2 Query show tables

2 Field List b

2 Field List bmw

2 Field List http_auth

2 Field List perf_machine

2 Field List t

2 Field List t1

2 Field List t2

2 Field List t5

2 Field List t_max_col

2 Field List tb

2 Field List tbcsv

2 Field List tbmemory

2 Field List tbmyisam

2 Field List tc

2 Field List total

2 Field List tt

而简单的show tables,show databases, select database(),show tables from test,实际都只对应一条generallog。

Sql代码

130603 16:17:12 2 Query show tables

130603 16:17:28 2 Query show databases

130603 16:17:48 2 Query SELECT DATABASE()

130603 16:19:44 3 Query show tables from test

从general log可以看到 一条use test,实际执行了多次dispatch_command(),使用gdb对general_log_write()设置断点,实际执行如下:

COM_QUERY,对应的sql是 SELECT DATABASE(),调用路径为:handle_one_connection(sql_connect.cc)->do_command(sql_parse.cc)->dispatch_command(sql_parse.cc,command=COM_QUERY,packet="SELECT DATABASE()");

COM_INIT_DB,调用路径为:handle_one_connection(sql_connect.cc)->do_command(sql_parse.cc)->dispatch_command(sql_parse.cc,command=COM_INIT_DB,packet="test");

COM_QUERY,对应的sql是 show databases,调用路径为:handle_one_connection(sql_connect.cc)->do_command(sql_parse.cc)->dispatch_command(sql_parse.cc,command=COM_QUERY,packet="show databases");

COM_QUERY,对应的sql是show tables,调用路径为:handle_one_connection(sql_connect.cc)->do_command(sql_parse.cc)->dispatch_command(sql_parse.cc,command=COM_QUERY,packet="show tables");

COM_FIELD_LIST,调用路径为:handle_one_connection(sql_connect.cc)->do_command(sql_parse.cc)->dispatch_command(sql_parse.cc,command=COM_FIELD_LIST,packet="columns_priv")。此处是n次调用(n为被use的schema下的表的个数,每次调用的时候,pachet内容即为表名);

因此在被use的schema下的表比较多的时候,自然会显得有些卡了(连续use同样的schema,则第二次use,则只会有COM_QUERY和COM_INIT_DB的过程), 为了避免use db后很卡,my.cnf里加上 no-auto-rehash;或者用mysql client连接的时候加上-A选项。

bitsCN.com

f68f2add0b68e4f9810432fce46917b7.png

相关标签:mysql

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值