首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解释空数据库上的计划MySQL

解释空数据库上的计划MySQL
EN

Stack Overflow用户
提问于 2018-07-30 19:20:45
回答 1查看 308关注 0票数 1

我在MySQL 5.6 (+ Percona工具包)中有一个数据库模式的副本,因为我必须评估应用程序上的查询的性能(并报告它们,以便采取优化查询/模式的措施)。此架构(出于安全原因)没有填充数据,原始表可能有100k-10条记录。

我正在对查询运行“解释”(使用MySQL Workbench 6.3),但似乎没有用,因为它没有显示所有的分析。示例:对连接三个表的(已知正在工作的) Select的解释显示了“在读取const表后不可能注意到的”消息。

因此,问题是:

  • 在一个空数据库上运行解释是没用的?
  • 我如何才能得到一个可靠的解释,我必须审查的查询?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-31 01:22:41

这取决于查询,但是的,我经常建议您需要用一些示例数据填充表,以获得准确的解释报告。

即使您填充了1行,从而避免了“不可能的地方”注意事项,这还不够好,因为只有很少行的表可能会被优化器专门处理。也就是说,优化器知道这样一个小表无论如何都适合于单个存储页,而且存储引擎将检索的最小单元是一个页面,因此它可以执行“表扫描”而不是使用索引,而如果表有几千行,则为同一查询使用索引很重要。

您不一定需要用真实、敏感的数据填充表。通常编写一个脚本来生成与实际数据相似的无意义数据,足以填充表以便进行测试。

您不一定需要填充100 k行的数据才能得到解释,以便向您显示与用于该多个数据的优化器计划相同的内容。如果你能用几百行或几千行的人工数据填充这些表,那就足够了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51600904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档