我正在使用mysql地理位置查询,它的工作正常。然而,当我尝试以米为单位返回距离(作为生成的col)然后命令它最接近最远时,这会耗费时间。在100k数据集上接近14秒。
如上所述distance_in_meters是生成的col并且没有索引。 有没有办法索引这个生成的col,即使进入它的数据总是会有所不同?索引这个col甚至会有帮助吗?
答案 0 :(得分:0)
根据设计,索引是静态的。也就是说,如果表中 内没有任何变化,则索引不需要更改。外部变化对指数没有影响。
你的任务似乎是"我在(lat,lng); 10家最近的咖啡店在哪里?#34;。 (x,y)是计算所需的外部数据"最近的" (即距离)。你要求动态索引。所以," no"。
任务可以由INDEX(latitude)
(或经度)帮助,但是从全表扫描到扫描表的重要部分。这可能足够好'为100K行。
如果你增长到更多行和/或你变得受I / O限制(由于RAM很小),那么你将需要我的blog。