1

目标:我正在尝试确定表结构和查询的最佳方法;即,如何最好地创建复合索引键来优化每个表中大约 500k 行的四表连接。

心理障碍:这是表的构建并用我不理解的测试数据填充它们(SQL 菜鸟)。这篇 SO 帖子描述了我试图解决的 75% 的问题,我想如果我可以让答案的代码在我的本地主机(apache2、mysql5.1、phpMyAdmin)上运行,我可以完成我的理解。

请求帮助: Jake Feasel 的sqlfiddle站点是一个很棒的工具,但据他说,它并没有扩展到那个级别。但是,有人可以使用 sqlfiddle 向我展示如何在本地机器上构建这个环境吗?我希望推断您的 sqlfiddle 帖子以复制我上面提到的示例代码。

一个假设: 我的大部分 SQL 经验一直在调整ADOdb 数据库抽象库,但我意识到 MYSQL 代码在测试环境中会略有不同。不过,我假设通过了解如何设置本地 SQL 测试环境以及随后的数据库结构和查询将获得的优化知识在 ADOdb 环境中实施时将适用且有益。

4

2 回答 2

1

你真正需要的是一个数据生成器工具,它可以帮助你用数千或数百万条记录填充数据库,在你拥有一个包含有意义数据的臃肿数据库之后,你可以开始你的性能测试,尝试最好的关系、索引和连接,这将有助于您检测到真正需要优化的内容。

我过去个人使用的一个是:GenerateData 但还有其他

于 2012-05-29T00:34:59.427 回答
0

http://sqlfiddle.com/#!2/b771b/2

在这里,您可以看到我已复制您的表定义并将它们粘贴到架构面板中。我还在其中添加了一些虚拟数据。使用该基本结构,我也执行了您的查询;您可以看到它生成的执行计划与您的馅饼显示的执行计划相同(展开小提琴上的“+ 查看执行计划”)。

您可以看到它在 SQL Fiddle 上运行良好。这解决了您标题中的问题(“如何创建 SQL 测试环境”)。您的其他请求的哪一部分“我如何在我的本地机器上构建这个环境?” 你有麻烦吗?

于 2012-05-28T18:44:06.867 回答