我有3列我正在搜索的數據:description(fulltext),lat(index)和lon(index)。MySQL全文索引和常規索引搜索
當我做SELECT id FROM table MATCH(description) AGAINST ('query' IN BOOLEAN MODE)
一切都迅速處理,並正常工作。
當我做SELECT id FROM table WHERE lat BETWEEN a and b AND lon BETWEEN x and y
一切都迅速處理,並正常工作。
當我把兩個where子句和一個簡單的AND合併在一起時,一切正常,但需要幾秒鐘來處理。
前兩個查詢需要0.1秒,最後一個需要3秒以上,我似乎無法弄清楚如何讓它運行得更快。描述是全文索引,經緯度列是正常索引。
任何想法是什麼在放慢速度和/或如何解決它?該表是InnoDB。
這很奇怪。請爲緩慢查詢提供'EXPLAIN SELECT ...'。 –
當然,它只會使用查詢的兩個索引之一。 –
select_type = SIMPLE,type = fulltext,possible_keys =,key = search_fulltext,extra = Using where;使用filesort –
user2247281