我们很少有标准化表,每个表平均包含 250 万行。然后是一个带有连接的选择查询。执行需要 30 多分钟。db 服务器在具有 9GB 内存和四核 Xeon 处理器的机器上运行。所以,由于我从未使用过大数据,我试图了解这是错误的查询问题还是硬件问题?任何信息表示赞赏
问问题
105 次
2 回答
1
以我的经验,30 分钟的查询严格来说并不是数据库大小的结果。
在这种情况下有很多变量取决于您考虑的查询时间。您是指在用户端感知的执行时间(例如:网页请求或应用程序响应时间)?或者您是指直接在数据库上执行的原始查询(通过数据库管理器或命令行)?
如果您确实是指直接在数据库上执行原始查询的执行时间,那么我确定瓶颈的下一步将是使用 SQL EXPLAIN 修饰符或 HeidiSQL 之类的应用程序来对查询进行基准测试并获取查询组件的细分.
我的猜测是您没有正确使用索引,数据库必须创建临时索引和表并针对它们执行。那将是我下意识的假设。
我们截断的开发数据库对 1-3 百万行的表运行复杂的查询(它包含我们生产数据库的一小部分,仍然以 16 gigs 的速度运行),虽然我们有时会达到约 15 分钟,但这些查询是巨大的。
于 2013-09-12T12:33:32.033 回答
0
在对您的软件充满信心之前,与硬件无关。使用 EXPLAIN PLAN 详细信息发布您的查询。
于 2013-09-12T15:23:29.730 回答