Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Размер запрашиваемых данных / 7 сообщений из 7, страница 1 из 1
14.10.2015, 09:45:49
    #39076223
Pavel_K66
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер запрашиваемых данных
Здравствуйте.
Проблема: Необходимо знать размер запрашиваемых данных (в байтах) (размер ответа на запрос) для того, чтобы сообщить пользователю о размере приходящих данных(или примерном времени затраченном на запрос), естественно перед выполнением реального запроса.
Пытаюсь осуществить это так:
1) Создаю временную таблицу с данными запроса на стороне сервера
CREATE TEMPORARY TABLE myTempTable SELECT column1,column2 FROM myRealTable;
2) Запрашиваю статус временной таблицы
SHOW TABLE STATUS LIKE 'myTempTable';
Но в ответ получаю лишь Empty set (пусто).
3) "Исправил" проблему тем, что собираю данный не во временную таблицу, а в реальную (Понимаю, что это неправильно!)
CREATE TABLE myRealTable_2 SELECT column1,column2 FROM myRealTable;
Далее запрашиваю статус таблицы myRealTable_2 (размер данных)
SHOW TABLE STATUS LIKE 'myRealTable_2';
Затем удаляю таблицу myRealTable_2
DROP TABLE myRealTable_2;

Подскажите, как осуществить желаемое?
...
Рейтинг: 0 / 0
14.10.2015, 09:54:37
    #39076233
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер запрашиваемых данных
Pavel_K66Запрашиваю статус временной таблицы
Код: sql
1.
    SHOW TABLE STATUS LIKE 'myTempTable';


Но в ответ получаю лишь Empty set (пусто).
http://dev.mysql.com/doc/refman/5.6/en/show-table-status.html SHOW TABLE STATUS works likes SHOW TABLES, but provides a lot of information about each non-TEMPORARY table.
=================
Pavel_K66"Исправил" проблему тем, что собираю данный не во временную таблицу, а в реальную (Понимаю, что это неправильно!)
ENGINE=Memory

PS. http://www.mysql.ru/webboard/index.html?n1=12983&n2=1&page=1
...
Рейтинг: 0 / 0
14.10.2015, 12:21:42
    #39076420
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер запрашиваемых данных
Pavel_K66SELECT column1,column2 FROM myRealTableЧем напрягать сервер бессмысленными (и беспощадными) выборками, сделали бы хпшку, которая читала бы information_schema и выдавала бы что-то типа (sizeof(table.columnX)+sizeof(table.columnY))*tablerowcount(table). Потому как сейчас вместо Pavel_K66перед выполнением реального запроса.выходит, что вы 2 раза выполняете тот самый "реальный запрос". От того, что вы пихаете его результат в темптаблицу, он менее реальным не становится.
...
Рейтинг: 0 / 0
14.10.2015, 12:50:29
    #39076467
Pavel_K66
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер запрашиваемых данных
tanglirхпшку
Прошу прощения, что есть хпшка?
...
Рейтинг: 0 / 0
14.10.2015, 12:56:23
    #39076476
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер запрашиваемых данных
Pavel_K66,

хранимая процедура
...
Рейтинг: 0 / 0
14.10.2015, 13:02:36
    #39076484
Lumix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер запрашиваемых данных
Pavel_K66Проблема: Необходимо знать размер запрашиваемых данных (в байтах) (размер ответа на запрос) для того, чтобы сообщить пользователю о размере приходящих данных(или примерном времени затраченном на запрос), естественно перед выполнением реального запроса.

Это принципиально невозможно.

Но при этом очень легко решить вот такую задачу:

Проблема: Необходимо знать размер запрашиваемых данных (в байтах) (размер ответа на запрос) для того, чтобы сообщить пользователю о размере приходящих данных(или примерном времени затраченном на запрос), естественно перед отправкой результатов запроса пользователю .

PS. Обладая огромным опытом практической разработки и зная как устроен реальный мир могу дать вам очень "плохой" совет. :-) Соврите! Кормите юзера дезой! :-)
Сообщите ему, что его запрос будет весить 10 Кб и выполнение займет 2 минуты.
Если он согласиться, то выполняйте запрос и положите болт на то сколько он весит и сколько времени он займет. Если время и объем будут больше и юзер будет этим недоволен, то просто принесите извинения.
Мы всегда пользуемся такой стратегией, когда заказчик хочет то, что принципиально невозможно сделать.
Заказчик хочет чтобы его автомобиль ехал выше скорости света?!
Он не понимает наших объяснений что это невозможно и продолжает требовать?!
Не вопрос!
Делаем спидометр и показываем ему, что он движется со скоростью 800 000 км/с.
В 99% случаев заказчик остается полностью довольным!
...
Рейтинг: 0 / 0
14.10.2015, 13:08:40
    #39076492
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Размер запрашиваемых данных
LumixPS. Обладая огромным опытом практической разработки и зная как устроен реальный мир могу дать вам очень "плохой" совет. :-) Соврите! Кормите юзера дезой! :-)
Сообщите ему, что его запрос будет весить 10 Кб и выполнение займет 2 минуты.
Если он согласиться, то выполняйте запрос и положите болт на то сколько он весит и сколько времени он займет. Если время и объем будут больше и юзер будет этим недоволен, то просто принесите извинения.
Я предпочитаю противоположный образ действий. Я скажу, что выполнение закончится послезавтра, а объём данных будет равен удвоенному размеру БД, но не менее 4 гигабайт. А далее всё то же, но ещё появится повод слупить с него дополнительные вкусняшки за проведённую оптимизацию.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Размер запрашиваемых данных / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]