数据库建模故障

时间:2014-01-21 05:43:43

标签: mysql database database-design

您好我最近遇到过一种情况,我要求为我们的客户已经开发和运行的产品优化数据模型。做这个练习器的主要原因是,产品因性能太慢而导致性能下降因为我不是DBA,在第一个站点查看数据模型并进行一些查询跟踪,我发现整个数据模型都存在设计和存储不当的问题。数据库 MySQl 5.6 ,我们正在运行InnoDB引擎。

我想知道是否有任何工具可以分析整个数据模型并指出可能的问题,包括数据结构定义,索引和其他东西? 我尝试了很多分析工具,包括Mysql Workbench,Mysql Enterprise Monitor(付费版本),喷射分析器,但它们似乎仅限于识别慢速查询。我对可以分析现有数据模型并报告问题的工具以及相同的可能解决方案感兴趣的工具

3 个答案:

答案 0 :(得分:0)

慢查询是最重要的。向我们展示其中的一些,以及SHOW CREATE TABLE,EXPLAIN以及表格的大小。

此外,您每秒运行多少个查询?

显示变量'%buffer%';

答案 1 :(得分:0)

没有你正在寻找的工具,所以我想你必须做你的功课,提出另一个“遵守规则”的数据模型。

您可以从熟悉first three normal forms开始。

您还可以尝试在数据库中检测SQL反模式(有关于这些的书籍)。这应该会为你提供一些工作机会。

答案 2 :(得分:0)

您不能孤立地查看数据模型。您需要将数据模型与需求和实际数据访问/更新模式一起考虑。

我建议您确定最常见的X最慢查询并执行根本原因分析。 确保您专注于重要的应用程序部分,例如。性能问题会对应用程序的有用性产生负面影响。

通过数据访问/更新模式,我的意思是:

  • 高与低并发访问次数
  • 主要是阅读或更新?
  • 单一记录读取与一次读取大量记录
  • 访问在白天均匀分布或在特定时间批量分发
  • 随机访问(可能选择或更新每条记录)与主要是最近的记录
  • 是否所有表格均等使用或某些表格比其他表格更常用
  • 是否一次读取所有表的所有列?或者是否有一起使用的列集合?
  • 经常一起使用哪些表?