Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Но что случится, если нам потребуется вывести сразу 10'000 записей?
Во-первых, принимающая сторона тоже должна поддерживать стриминг.
В-третьих, может стоять задача сделать моментальный снимок данных и тянуть данные по одной записи нельзя.
Такое решение тоже имеет право на жизнь, но превносит дополнительную сложность, как минимум.
Во-вторых, это теория, а чтобы узнать что быстрее — нужны цифры из тестов.
Нет, потому что http его поддерживает.
Вообще-то, с точки зрения «моментальности» ничего не меняется — как вам БД отдавала данные по определенным критериям, так и отдает. Вопрос только в том, как и когда вы начинаете их обрабатывать.
А решение из поста — не привносит?
HTTP — это протокол, а принимающая сторона — ПО, поэтому протокол может быть и поддерживает, а вот принимающая сторона может и не поддерживать.
Если данные в базе изменяются, например, 20 раз в секунду, то один запрос и 1000 запросов вернут совсем разные значения.
Привносит минимум.
var query = DB.exec_query(...);
var result = query.get_all();
var output_string = JSON.encode(result);
write_output(output_string);
var query = DB.exec_query(...);
while ( var row = query.get_next() ) {
result.push(row);
}
foreach (res_row IN result ) {
output_string = output_string + JSON.encode(res_row);
}
write_output(output_string);
var query = DB.exec_query(...);
while ( var row = query.get_next() ) {
write_output(
JSON.encode( row );
);
}
Молниеносный JSON в Ruby on Rails