我正在尝试使用MySQL执行一个非常简单的查询。我试图实现的是在一个查询中从两个不同的表中选择一些数据。但是,如果我只从一个表中选择数据,查询就会运行得很快,但是当我切换到从两个表中选择数据时,它会变得非常慢。
我想要实现的查询如下:
SELECT k.klantId, b.bestelId
FROM klanten k, bestellingen b
WHERE k.klantId=b.klantId AND voornaam LIKE '%henk%'上面的查询大约需要20秒才能运行。
但是,当我像这样执行我的查询时,查询只在不到一秒钟的时间内运行:
SELECT k.klantId
FROM klanten k, bestellingen b
WHERE k.klantId=b.klantId AND voornaam LIKE '%henk%'我还试图从表'bestellingen‘中选择一个不同的列,但这也是非常慢的。
有谁知道选择一个额外的字段怎么会这么慢吗?
我想我在那里,但现在我用更多的列来选择我的桌子。现在它又用了18秒,但可能我的扩展查询做错了什么。有人知道这是怎么回事吗?
SELECT filiaalId, bestelId, k.klantId, totaalPrijs, b.statusId, b.tmInvoer, geprint, verzendwijze, betaalwijze, afhaalpuntId, verzendkosten, betaalwijzeKosten
FROM klanten k LEFT JOIN bestellingen b ON (k.klantId=b.klantId)
WHERE (k.voornaam LIKE '%henk%' OR k.achternaam LIKE '%henk%' OR b.bestelId LIKE '%henk%')
ORDER BY b.tmInvoer DESC发布于 2016-06-22 09:10:39
尝试使用mysql连接,这应该会更快。
SELECT k.klantId, b.bestelId
FROM klanten k LEFT JOIN bestellingen b ON (k.klantId=b.klantId)
WHERE voornaam LIKE '%henk%'还可以确保对k.klantId和b.bestelId两列进行索引。
https://stackoverflow.com/questions/37963423
复制相似问题