Мой вопрос что-то в общем, как я ищу предложения на лучший способ работы с запросом на PostgreSQL с характеристиками:производительность Postgresql и Django
- интервал от клиентской части 5 секунд
- Более 5000 записей по каждому результату запроса
- результат набор четыре присоединился таблицы
- набор результат будет отображаться на карте Google
Скорее всего, представление может быть лучше, чем простой SQL или, возможно, процедура хранения. На данный момент я использую общий запрос AJAX, и мой AJAX код:
def request_positions(request):
try:
vehicles = Vehicle.objects.filter(registration__in = simplejson.loads(request.GET['vehicles']))
except MultiValueDictKeyError:
vehicles = Vehicle.objects.all()
points = []
for vehicle in vehicles:
point = {
'vehicle' : vehicle.registration,
'imei': None,
'latitude': None,
'longitude':None,
'course': None,
'speed': None,
'mileage': None,
'gps_signal': None,
'gsm_signal': None,
'alarm_status': None,
'gps_satus': None,
'vehicle_status': None,
'alarm_over_speed': None,
'other': None,
'date_time_process': None,
}
try:
vehicledevice = vehicle.vehicledevice_set.get(is_joined__exact = True)
try:
track = vehicledevice.device.devicetrack_set.exclude(date_time_process__isnull = True).latest('date_time_process')
point['imei'] = vehicledevice.device.imei
point['latitude'] = track.latitude
point['longitude'] =track.longitude
point['course'] = track.course
point['speed'] = track.speed
point['mileage'] = track.mileage
point['gps_signal'] = track.gps_signal
point['gsm_signal'] = track.gsm_signal
point['alarm_status'] = track.alarm_status
point['gps_status'] = track.gps_status
point['vehicle_status'] = track.vehicle_status
point['other'] = track.other
point['date_time_process'] = track.date_time_process.astimezone(tz.gettz()).strftime("%Y-%m-%d %H:%M:%S")
points.append(point)
except ObjectDoesNotExist:
pass
except ObjectDoesNotExist:
pass
json = simplejson.dumps(points)
return HttpResponse(json, mimetype='application/json')
Моего приложение для отслеживания, который хранит данные каждые 10 секунд, и около 5000 трекер, используя витую демону. Затем мне нужен способ получить быстрые ответы без дополнительной загрузки на стороне клиента, как вы могли видеть, я использую общие определения django, но я также пытаюсь оптимизировать этот запрос, чтобы сократить время запроса и ответа Кроме того, заряд сети и сервера, я имею в виду, лучший способ получить лучший процесс.
Отправьте запрос. – orokusaki
Я редактировал свой пост с кодом, однако я пытался избежать вставки кода, пытаясь найти предложение, не зависящее от кода, я надеюсь, что это может помочь получить лучшую помощь – Carlos