【问题标题】:MySQL : Slow show databases;MySQL:慢速显示数据库;
【发布时间】:2014-03-01 23:41:43
【问题描述】:

我们目前使用 MySQL 服务器版本 5.5.35 x86 - Win64

当我们运行命令时:

显示数据库;

作为根用户:

     2640 lines in 0,125 sec. (+ 0,015 sec. network)

作为只有只读权限的用户:

     2634 lines in 2,355 sec. (+ 0,016 sec. network)

同样的反应:

从 INFORMATION_SCHEMA.SCHEMATA 中选择 SCHEMA_NAME;

任何想法,为什么这么慢?这是同一个查询,只有其他用户权限。


Edit:
Result of the profiling as suggested by @APaul.
  • 状态;持续时间
  • 开始; 0.000041
  • 打开表; 0.000158
  • 系统锁; 0.000010
  • 初始化; 0.000010
  • 优化; 0.000007
  • 统计; 0.000015
  • 准备; 0.000009
  • 正在执行; 2.613761;根:0.130849
  • 发送数据; 0.005739
  • 结束; 0.000006
  • 查询结束; 0.000002
  • 关闭表格; 0.000001
  • 正在删除 tmp 表;0.001469
  • 关闭表格; 0.000004
  • 释放物品; 0.000165
  • 记录慢查询;0.000005
  • 清理; 0.000007

【问题讨论】:

  • 您是否尝试对从 information_schema.schemata 中选择的 schema_name 执行解释计划,以查看 root 和 r/o 用户计划之间是否有任何区别?
  • 另外,你是从本地SQL客户端(mysql命令)运行SQL,还是使用一些外国工具?工具通常会执行可能取决于权限的其他查询。
  • 我不明白你的第一个建议。我在两种环境中都尝试了查询。通过 HeidiSQL 的命令行也是一样。
  • 只是为了放弃 SQL 工具可能的交互。如果两种情况下结果相同,则与工具无关。由于我在 Linux 下使用 MariaDB,因此我无法为您提供进一步的帮助,我无法重现该问题(使用 root 和只读用户快速)。

标签: mysql show database-schema


【解决方案1】:

不,这似乎与特权无关。可能有一些内部缓存使用户“root”更快。但是权限与查询速度慢无关。

还要检查

Do mysql user privileges influence performance?

【讨论】:

  • 如果我们多次运行查询,性能是一样的,没有加速。
  • 缓存只是一个想法。你也可以检查一下。 stackoverflow.com/questions/10911276/…
  • 分析:状态持续时间开始; 0.000041 打开表; 0.000158 系统锁; 0.000010 初始值; 0.000010 优化; 0.000007 个统计; 0.000015 准备; 0.000009 正在执行; 2.613761; root : 0.127287 发送数据; 0.005739 结束; 0.000006 查询结束; 0.000002 关闭表; 0.000001 删除 tmp 表; 0.001469 关闭表; 0.000004 释放物品; 0.000165 记录慢查询; 0.000005 清理; 0.000007
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多