【发布时间】: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