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