Я храню большой список точек lnt / lat в базе данных MySQL. На данный момент это прогнозируемые точки для Великобритании в М, но в долгосрочной перспективе я хотел бы убедиться, что могу хранить координаты точек для всего мира. Какой тип данных я должен использовать?
Я начал использовать decimal(18,12)
, но не был уверен, нужна ли эта точность или я мог бы просто использовать float
. Я включил свой код, на случай, если есть что-то еще, что я должен рассмотреть:
CREATE TABLE UKTest
(
lat FLOAT,
lng FLOAT
)
Я совершенно новичок в SQL, поэтому я не уверен, имеет ли значение тип данных при выполнении запроса. Я предположил, что общая память будет варьироваться в зависимости от типа переменной. Есть ли преимущество использования пространственной базы данных по сравнению с базовой базой данных MySQL для этого типа работы?
Если вы не привязаны к MySQL по какой-либо другой причине, вам стоит рассмотреть возможность использования пространственно включенной базы данных, такой как postgis, у которой есть объект Point (и Line, Polygon и т. Д.) Для обработки этих деталей за вас. Вы также получаете поддержку проекции, когда вносите эти изменения во весь мир.
2019 : для таких людей, как я, которые также не читают комментарии - MySQL поддерживает пространственные типы данных, предположительно медленнее, без доказательств.
источник