Ich habe eine Datenbank mit einer Liste von Städten mit Koordinaten, und ich verwende mybatis mit dieser Abfrage, um Städte mit einer Grenze zu finden.mysql Abfrage nach mehreren Koordinaten Grenzen
SELECT * FROM cities
WHERE lat > #{latMin}
AND lat < #{latMax}
AND lng > #{lngMin}
AND lng < #{lngMax}
Jetzt habe ich mehrere Grenzen, und ich rufe die Abfrage mehrmals alle Städte in allen Grenzen enthalten haben, und es wird immer langsamer.
Um die Dinge zu beschleunigen, ohne meine Architektur zu ändern, kann ich eine einzige Abfrage haben, die eine (möglicherweise sehr lange) Liste von Grenzen eingibt? Vielleicht eine gespeicherte Prozedur?
Die Einschränkungen in diesem Projekt sind Mybatis als Persistenzschicht und Mysql als db.
bearbeiten: Dies ist meine aktuelle mybatis-Methode.
List<CityDTO> getCityNearPoint(@Param("latMin") Double latMin, @Param("latMax") Double latMax,
@Param("lngMin") Double lngMin, @Param("lngMax") Double lngMax);
Ich weiß nicht, wie ein Array von Objekten zu übergeben, die die Grenzen enthält und sie auf mehrere OPs abzubilden. Etwas wie:
List<CityDTO> getCityNearBoundaries(BoundaryDTO[] boundaries);
Ich verstehe nicht, wie ich ein Array von Objekten passieren kann und sie auf mehrere OPs abzubilden. Ich werde meine Frage bearbeiten, um zu klären. – Alessandro