【发布时间】:2014-08-14 11:08:14
【问题描述】:
我有两张桌子。第一个表(NESNE 表)是我正在搜索的主表,其中包含书籍信息。第二张桌子(ciltkopyatable)有很多书。所以一本书可以有 1,2,3.. 和更多卷。我想显示数据库上有多少卷。我有以下查询,它有效。但它是slow。我怎样才能使fast呢?
SELECT count(*)
FROM nesne n
LEFT JOIN ciltkopya c ON n.id = c.nesne_id
WHERE MATCH(`n.formdata`) AGAINST('world' IN BOOLEAN MODE)
当我查询EXPLAIN 我的查询时,如下:
http://i.stack.imgur.com/jWCef.png
好的,我想通了。解决方案:
SELECT count(c.nesne_id) FROM ciltkopya c JOIN (SELECT id FROM nesne WHERE MATCH(formdata) AGAINST('world' IN BOOLEAN MODE)) n ON n.id = c.nesne_id
谢谢 :)
【问题讨论】:
-
你有什么索引?
-
请显示您的表定义,包括索引。查询速度有多快?每个表大约有多少行?
标签: mysql sql performance count