f_evgeny wrote:Вы не можете через веб возвращать 50мб. Я не написаб, что веб исключает, об этом должен позаботиться разработчик.
Боюсь, что Вы не поняли, что я сказал:
Во-первых, прочитать 5% таблицы и вернуть 5% таблицы клиенту - это разные вещи. Например, если у Вас есть индекс по дате, но нет индекса по дате и пользователю, то если в запросе сказано, что нужно выдать все сообщения пользователя X за дату Y, то СУБД прочитает все строки, где дата = Y, но клиенту вернёт только те, для которые ещё и пользователь = X.
Во вторых, если даже вместо 5% будет 0.0005%, т.е. 5К из 1GB, то это ещё хуже, так как для интересующегося 0.0005% данных блокировать всю таблицу, пока эти 0.0005% будут найдены вообще говоря странно.
Но даже если предположить, что такие запросы редкая экзотика, поэтому специально для них мы не будем строить и поддерживать актуальный индекс, говорить, что для больших таблиц табличные блокировки НАМНОГО (именно так, большими буквами) лучше - это чистое надувательство со стороны тех, кто публикует такую документацию.