Я запускаю запрос MYSQL в два этапа. Во-первых, я получаю список идентификаторов с одним запросом, а затем я извлекаю данные для этих идентификаторов, используя второй запрос по строкам SELECT * FROM data WHERE id in (id1, id2 ...)
. Я знаю, что это звучит взломанно, но я сделал это так, потому что запросы очень сложны; первая включает в себя множество геометрии и триггернометрии, вторая - множество разных объединений. Я уверен, что они могут быть написаны в одном запросе, но мой MYSQL недостаточно хорош, чтобы отключить его.
Этот подход работает, но он не чувствует себя хорошо; плюс я обеспокоен тем, что он не будет масштабироваться. В настоящий момент я тестирую базу данных из 10 000 записей с 400 идентификаторами в предложении "IN" (т.е. IN (id1, id2 ... id400)
), и производительность в порядке. Но что, если скажут 1 000 000 записей?
Где узкие места производительности (скорость, память и т.д.) для такого рода запросов? Любые идеи о том, как реорганизовать такой запрос, также являются удивительными. (например, если это необходимо для сохранения хранимых процедур).