目标:我正在尝试为表格结构和查询确定最佳方法;也就是说,如何最好地创建复合索引键以优化每个表中约500k行的四表连接。
精神障碍:这是表格的构建,并用测试数据填充它们,我很难理解(SQL菜鸟)。 This SO post描述了我正在尝试解决的问题的75%,如果我能在我的localhost(apache2,mysql5.1,phpMyAdmin)上运行answer's code,我想我可以完成理解。 。
请求帮助: Jake Feasel的sqlfiddle网站是一个很棒的工具,但根据他的说法,它不会扩展到那个级别。但是,有人可以使用sqlfiddle向我展示如何在本地计算机上构建此环境吗?我希望推断你的sqlfiddle帖子来复制我上面提到的示例代码。
一个假设:我的大部分SQL经验都在调整ADOdb Database Abstraction Library,但我发现MYSQL代码在测试环境中略有不同。尽管如此,我还是假设通过了解如何设置本地SQL测试环境而获得的优化知识,以及后续的数据库结构和查询在ADOdb环境中实现时将是适用且有益的。
答案 0 :(得分:1)
您真正需要的是一个数据生成器工具,它可以帮助您使用数千或数百万条记录填充数据库,并且在拥有包含有意义数据的膨胀数据库之后,您可以开始性能测试,尝试最佳关系,索引和连接这将帮助您检测真正需要优化的内容。
我个人过去使用的一个是:GenerateData 但有others。
答案 1 :(得分:0)
http://sqlfiddle.com/#!2/b771b/2
在这里,您可以看到我已复制您的表格定义并将其粘贴到架构面板中。我还在每个中添加了一些虚拟数据。使用该基本结构,我也执行了您的查询;你可以看到它产生了你的牧师所展示的相同的执行计划(扩展" +查看执行计划"在小提琴上)。
你可以看到它在SQL Fiddle上运行正常。这解决了标题中的问题("如何创建SQL测试环境")。您的其他请求的哪一部分"我如何在本地计算机上构建此环境?"你有问题吗?