jtag, что мешает реализовать такой алгоритм:
Получаю список данных на обработку; Собираю все айдишники пользователей в массив; Запрашиваю из бд поля id и ИНН пользователей, чей id лежит в собранном массиве; Создаю объект "insert", в который буду складывать данные для вставки в бд; В цикле гоняю полученные данные заполняя объект "insert"; Если "insert" не пустой, создаю в бд сразу несколько записей на основе данных из этого объекта. Описанный мною алгоритм требует всего 3 запроса и 1 цикл. |
Nexus,
по уму, так тут никаких циклов и требуется, собственно как и четыре запроса. |
laimas, "insert select"?
|
Спасибо. Попробую реализовать.
|
Цитата:
let x = 0; function query(){ connection.query("SELECT * FROM person WHERE x = '"+x+"' ... ", function() { x++; setTimeout(query,500); }); } query(); |
jtag, если у вас все необходимые данные есть в бд, то можно обойтись 1 запросом к бд.
Без циклов и прочего. |
Цитата:
Я не знаю node и для меня в запросах setTimeout(), это вообще какая-то дикость. :) Но то что запросы организованы не как полагается, это видно сразу. |
laimas, я тоже ноду не знаю, но автору, вроде как нужно добавить пользователей, для которых в бд нет инн.
|
NeoN, я node.js не знаю, но не оцените ли саму идею этого кода? :)
class SomeClass{ /** * @return Promise */ public getFirstOneBillionUsers(){ return new Promise(function(resolve){ var counter=0, users=[], request=function(){ connection.query('SELECT * FROM users WHERE id>'+$counter+' LIMIT 1',function(user){ counter++; users.push(user); if(counter<Math.pow(10,9)) setTimeout(request,500); else resolve(users); }); }; }); } }По-моему гениальный способ зад-чить бд :) Примерное время выполнения метода: чуть меньше 16 лет. |
процедуру напиши
|
Часовой пояс GMT +3, время: 06:40. |