@Alk90
php, mysql, jquery, css, html, api

Как хранить записанные маршруты?

Всем привет! У меня через API сохраняются записанные через приложение маршруты. Каждый раз при сохранении маршрута больше 100км я получаю ошибку о нехватке памятки, когда пытаюсь даже просто преобразовать точки маршрута через json_decode. Но даже если я решаю эту проблему устанавливая ini_set('memory_limit', '-1');, то при попытке сохранить эти точки в БД получаю ошибку "MySQL server has gone away".
В итоге и увеличение памяти до бесконечности это неправильное решение и в базу такой маршрут я сохранить не могу.
А ведь кроме этого не мешало бы не просто сохранять маршрут, но и делать его валидацию.
Как в таких случаях поступают?
Маршрут выглядит вот так (только точке больше в тысячи раз):
[
{"lng":85.183698,"lat":52.522739,"speed":2.5,"date":"1694856347"},
{"lng":85.183676,"lat":52.522738,"speed":2.1,"date":"1694856348"},
{"lng":85.183643,"lat":52.522738,"speed":2.1,"date":"1694856349"}
]
  • Вопрос задан
  • 142 просмотра
Пригласить эксперта
Ответы на вопрос 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Большие объемы данных хранят точно так же, как и маленькие.
Любые отступления от этого правила должны быть продиктованы очень серьезными причинами. поскольку никаких причин вы не привели, то и ответ будет стандартный:
Делаете таблицу вида
route_id, lng,lat,speed,date
и пишете в нее свои точки, используя множественный insert
ошибка mysql лечится увеличением max_allowed_packet
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы