Почему пространственный индекс не используется MySQL?

#mysql #sql #mysql-workbench

#mysql #sql #mysql-workbench

Вопрос:

У меня проблема в mysql. я создал таблицу для некоторых полигонов и добавил индекс, но индекс не используется при выборе данных это моя таблица для хранения полигонов

 CREATE TABLE road_polygon (
id bigint(12) unsigned NOT NULL AUTO_INCREMENT,
  road_polygon polygon NOT NULL,
  PRIMARY KEY (id),
  SPATIAL INDEX (road_polygon)
) ENGINE=InnoDB
  

Когда я запрашиваю данные, не используется индекс. я проверил документацию Mysql и многие сообщения, но не решает, также я пытался изменить MyISAM, который не работает

 explain  
    select id, road_polygon 
    from road_polygon 
    where st_contains(road_polygon, POINT(32.027856, 36.803250));

id  select_type table   partitions  type    possible_keys   key key_len ref rows    filtered    Extra
1   SIMPLE  road_polygon    NULL    ALL NULL    NULL    NULL    NULL    77  100.00  Using where
  

также я использую Mysql 8.0.12 InnoDB.

Пожалуйста, любая помощь, как решить эту проблему. Спасибо.

Комментарии:

1. Не могли бы вы, пожалуйста, отредактировать свой вопрос, чтобы показать вывод explain команды?

2. Какую версию MySQL вы используете? в 5.7 и 8.0 используется код Boost.geometry, который на несколько световых лет превосходит то, что было в более ранних версиях

3. Спасибо. Я обновил вопрос, также я использую Mysql 8.0.12

4. @ThomasG есть ли какое-либо решение? Мне действительно нужно, чтобы это работало.

5. вы нашли решение? Я застрял на той же проблеме