首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当从两个表中选择时,Mysql查询非常缓慢

问当从两个表中选择时,Mysql查询非常缓慢
EN

Stack Overflow用户
提问于 2016-06-22 09:08:22
回答 1查看 664关注 0票数 2

我正在尝试使用MySQL执行一个非常简单的查询。我试图实现的是在一个查询中从两个不同的表中选择一些数据。但是,如果我只从一个表中选择数据,查询就会运行得很快,但是当我切换到从两个表中选择数据时,它会变得非常慢。

我想要实现的查询如下:

代码语言:javascript
复制
SELECT k.klantId, b.bestelId
FROM klanten k, bestellingen b
WHERE k.klantId=b.klantId AND voornaam LIKE '%henk%'

上面的查询大约需要20秒才能运行。

但是,当我像这样执行我的查询时,查询只在不到一秒钟的时间内运行:

代码语言:javascript
复制
SELECT k.klantId
FROM klanten k, bestellingen b
WHERE k.klantId=b.klantId AND voornaam LIKE '%henk%'

我还试图从表'bestellingen‘中选择一个不同的列,但这也是非常慢的。

有谁知道选择一个额外的字段怎么会这么慢吗?

我想我在那里,但现在我用更多的列来选择我的桌子。现在它又用了18秒,但可能我的扩展查询做错了什么。有人知道这是怎么回事吗?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-22 09:10:39

尝试使用mysql连接,这应该会更快。

代码语言:javascript
复制
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两列进行索引。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37963423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档