4

这是我的查询。它工作得非常快。我有关于 movies.movi​​eid、movie.title、collectors_collections.barcode 和 collectors_collections.username 的索引(以及其他表上的索引):

SELECT *
FROM collectors_collections
JOIN movieitemdetails ON collectors_collections.barcode = movieitemdetails.barcode
JOIN movies ON movieitemdetails.movieid = movies.movieid
JOIN barcodes ON collectors_collections.barcode = barcodes.barcode
WHERE (wishlist = 'NO' OR wishlist IS NULL) AND barcodes.type = 'movie' AND username = 'ethanwa'
ORDER BY movies.title LIMIT 250

一旦我将 LIMIT 更改为:

ORDER BY movies.title LIMIT 251

我在查询中不断挂起,除非我杀死它,否则我无法恢复。可能是什么原因造成的,我该如何解决?我缺少一些设置吗?一些索引?有什么腐败的?

4

1 回答 1

2

发现挂起是由于没有为 MySQL 分配足够的内存造成的,从而导致所有表都被发送到磁盘,这使得它需要 FOREVER。只需在 MySQL 设置中增加一些内存量就可以解决我的问题。

于 2013-05-15T02:09:48.023 回答