【问题标题】:Simple MySQL INSERT query very slow简单的 MySQL INSERT 查询非常慢
【发布时间】:2012-08-06 21:57:33
【问题描述】:

我认为我的 MySQL 服务器或我正在使用的查询有问题。我不确定是哪个。

服务器是VM Ubuntu12.4 4 cores/16gb Ram MySQL 5.5.24 x86

我的查询:

INSERT INTO `NEWTEXT`.`Order_LineDetails`

( OrderLineItem_ID, Customer_ID, Order_ID, ProductName )
SELECT
'Order_Details'.'OrderDetailID',
'Orders'.'CustomerID',
'Order_Details'.'OrderID',
'prods'.'ProductName'

FROM Order_Details 
JOIN Orders ON Orders.OrderID = Order_Details.OrderID
JOIN Products prods ON prods.ProductID = Order_Details.ProductID
WHERE Orders.OrderID = 500000

我不确定从哪里开始寻找问题。上面的查询需要 9+ 秒才能完成。 Order_Details 表中包含 1,800,000 多条记录。

让我烦恼的是,当我运行选择查询时,它也会变慢。但是,我有另一台正在运行 win2k MsSql 的服务器,它几乎是即时使用相同的 SELECT 查询。

我希望有人可以在这里为我指明正确的方向。

编辑

好吧,很抱歉给您带来麻烦,感谢您的帮助。

我发现问题在于,在完成导入后,我跳过了通常为新表分配PrimaryKey 的步骤。我知道,:( 笨。

无论如何!不要忘记分配您的Primary Keys

【问题讨论】:

  • 请显示您的表结构,以便我们查看您定义了哪些索引。
  • 您是否查看过选择查询的 EXPLAIN 输出?
  • 您的插入有 3 列,但您的选择有 4 列
  • 正如@MikeBrant 所说,显示您的表结构。您可以使用sqlfiddle.com 进行分享。
  • @Nathan 这实际上应该不会对性能产生影响,尽管如果它最终不会被插入,那么将 prods 表包含在 select 查询中似乎很奇怪。

标签: mysql ubuntu-12.04


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 2017-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-21
  • 1970-01-01
相关资源
最近更新 更多