MySQL 5.7 геопространственный индекс, точки будут концентрироваться в одной точке, причина производительности имеет значение

У меня есть хранилище информации о многих изображениях в MySQL, большинство изображений содержит информацию о географическом местоположении, а другие нет.

Поскольку геопространственный индекс MySQL не допускает нулевую точку геометрии, я должен вставить какую-то бессмысленную точку в таблицу, такую ​​как POINT(1000 1000).

Если все изображения, которые не имеют информации о географическом местоположении, установлены в POINT (1000 1000), это вызовет какие-либо проблемы?

Или есть лучший способ удовлетворить эту потребность?

2 ответа

POINT или же GEOMETRY может быть нулевым в MySQL (используя механизм хранения InnoDB или MyISAM). Однако, когда вы создаете таблицу, столбцы должны быть объявлены как не нулевые.

Просто сделайте это:

CREATE TABLE images(filename TEXT, location POINT NOT NULL); INSERT INTO images(filename, location) VALUES ('hello.png', NULL); SELECT count(*) FROM images WHERE location IS NULL;

В этом случае геопространственный индекс не нужен. Более быстрый и простой способ сделать это - использовать KEY (lon, lat) и SELECT * FROM the_table WHERE lon > a и lon c и lat

Другие вопросы по тегам