【发布时间】:2011-09-12 00:54:45
【问题描述】:
我有一张简历表 - 姓名、简历文本、邮政编码、名字、姓氏、经度、纬度、邮编……超过 500,000 行
我也查询它的方式:
按位置,例如:
1) SELECT * FROM resumes
WHERE ((latitude BETWEEN 44.3523845787 AND 45.6809474213)
AND (longitude BETWEEN -110.873064254 AND -108.993603746))
GROUP BY lastname,longitude
LIMIT 0, 50
by name
2) SELECT * from resumes
(MATCH(resume) AGAINST ('donald')) AS relevance
FROM resumes
WHERE (MATCH(resume) AGAINST ('donald'))
GROUP BY lastname,longitude
ORDER BY relevance DESC
LIMIT 0, 50
这个表上的查询一开始很慢,但是之后的相同查询更快,我认为它正在缓存它......
我怎样才能加快这些查询?谢谢
【问题讨论】:
-
快速/脏提示:
where或join或group by子句中使用的任何字段都应该有一个索引。 -
您是否添加了纬度、经度、姓氏和简历的索引? (即,当我输入此内容时,其他马克刚刚说了什么)
标签: mysql performance full-text-search