nozzy: в данном случае, если внимательно приглядеться, действительно, нет запросов в цикле. Но такой способ получения одной (последней?) строки предыдущего запроса все равно говнокод.
lelvisl: а у вас не у каждого пользователя свои файлы?
я почему-то подумал, что у вас каждый правит файлы на своем компьютере (без создания бранчей), затем они коммитят свои изменения в центр, из которого уже "настройки" (или что там у вас) идут на прод.
ну не знаю... у меня есть апи к базе электронных компонентов... себе все миллиарды позиций все равно не вытянешь, да еще и наличие с ценой регулярно меняется.
AlikDex: ну, даже в ой статье есть merge join, который вполне может работать для одинаково отсортированных таблиц, соединяя их за один проход, без цикла в цикле (nested loops).
MaxKorz: не совсем так. null не чем не лучше, чем 3.1415926. просто значение примитивного типа. еще раз спрошу про то, зачем замыкание? лучше бы избавится от глобальной переменной вообще. ну, или не на null её проверять, а на state.
myspace: ну, принцип тот же - для именованных плейсхолдеров - заменяем на именованные с суффиксом-номером. для ненумерованных - заменяем на нужное количество знаков вопроса через запятую, но это сложно, если плейсхолдера больше одного.