| | |
| | | <if test="direction != null "> and direction = #{direction}</if> |
| | | <if test="collectTime != null "> and collect_time = #{collectTime}</if> |
| | | <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 --> |
| | | AND date_format(collect_time,'%y%m%d') >= date_format(#{beginTime},'%y%m%d') |
| | | AND collect_time >= #{beginTime} |
| | | </if> |
| | | <if test="endTime != null and endTime != ''"><!-- 结束时间检索 --> |
| | | AND date_format(collect_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | AND collect_time <= #{endTime} |
| | | </if> |
| | | </where> |
| | | order by collect_time desc |
| | |
| | | </select> |
| | | |
| | | <delete id="deleteVehicleGpsBeforeDate"> |
| | | delete g from tb_vehicle_gps g |
| | | where g.collect_time < ( |
| | | select date_sub(max(collect_time), interval 2 day) |
| | | from tb_vehicle_gps g2 |
| | | where g2.vehicle_id = g.vehicle_id |
| | | ) |
| | | delete from tb_vehicle_gps |
| | | where collect_time < DATE_SUB(NOW(), INTERVAL 2 MONTH) |
| | | </delete> |
| | | |
| | | <delete id="deleteVehicleGpsBeforeDateBatch"> |
| | | delete from tb_vehicle_gps |
| | | where collect_time < DATE_SUB(NOW(), INTERVAL 2 MONTH) |
| | | LIMIT #{batchSize} |
| | | </delete> |
| | | |
| | | <update id="optimizeVehicleGpsTable"> |
| | | OPTIMIZE TABLE tb_vehicle_gps |
| | | </update> |
| | | |
| | | <select id="selectGpsDataByTimeRange" resultMap="VehicleGpsResult"> |
| | | select gps_id, vehicle_id, device_id, longitude, latitude, altitude, speed, direction, |
| | |
| | | where vehicle_id = #{vehicleId} |
| | | and collect_time >= #{startTime} |
| | | and collect_time <= #{endTime} |
| | | order by collect_time |
| | | </select> |
| | | |
| | | <!-- 查询活跃车辆ID(优化:使用GROUP BY替代DISTINCT,提升性能) --> |
| | |
| | | select vehicle_id |
| | | from tb_vehicle_gps |
| | | where collect_time >= #{startTime} |
| | | group by vehicle_id |
| | | order by vehicle_id |
| | | </select> |
| | | |
| | | <!-- 查询未被计算的GPS坐标(优化:使用NOT EXISTS替代LEFT JOIN ... IS NULL) --> |