
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
14.10.2015, 09:45:49
|
|||
|---|---|---|---|
|
|||
Размер запрашиваемых данных |
|||
|
#18+
Здравствуйте. Проблема: Необходимо знать размер запрашиваемых данных (в байтах) (размер ответа на запрос) для того, чтобы сообщить пользователю о размере приходящих данных(или примерном времени затраченном на запрос), естественно перед выполнением реального запроса. Пытаюсь осуществить это так: 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; Подскажите, как осуществить желаемое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.10.2015, 09:54:37
|
|||
|---|---|---|---|
Размер запрашиваемых данных |
|||
|
#18+
Pavel_K66Запрашиваю статус временной таблицы Код: sql 1. Но в ответ получаю лишь 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.10.2015, 12:21:42
|
|||
|---|---|---|---|
Размер запрашиваемых данных |
|||
|
#18+
Pavel_K66SELECT column1,column2 FROM myRealTableЧем напрягать сервер бессмысленными (и беспощадными) выборками, сделали бы хпшку, которая читала бы information_schema и выдавала бы что-то типа (sizeof(table.columnX)+sizeof(table.columnY))*tablerowcount(table). Потому как сейчас вместо Pavel_K66перед выполнением реального запроса.выходит, что вы 2 раза выполняете тот самый "реальный запрос". От того, что вы пихаете его результат в темптаблицу, он менее реальным не становится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.10.2015, 12:50:29
|
|||
|---|---|---|---|
|
|||
Размер запрашиваемых данных |
|||
|
#18+
tanglirхпшку Прошу прощения, что есть хпшка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.10.2015, 12:56:23
|
|||
|---|---|---|---|
Размер запрашиваемых данных |
|||
|
#18+
Pavel_K66, хранимая процедура ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.10.2015, 13:02:36
|
|||
|---|---|---|---|
Размер запрашиваемых данных |
|||
|
#18+
Pavel_K66Проблема: Необходимо знать размер запрашиваемых данных (в байтах) (размер ответа на запрос) для того, чтобы сообщить пользователю о размере приходящих данных(или примерном времени затраченном на запрос), естественно перед выполнением реального запроса. Это принципиально невозможно. Но при этом очень легко решить вот такую задачу: Проблема: Необходимо знать размер запрашиваемых данных (в байтах) (размер ответа на запрос) для того, чтобы сообщить пользователю о размере приходящих данных(или примерном времени затраченном на запрос), естественно перед отправкой результатов запроса пользователю . PS. Обладая огромным опытом практической разработки и зная как устроен реальный мир могу дать вам очень "плохой" совет. :-) Соврите! Кормите юзера дезой! :-) Сообщите ему, что его запрос будет весить 10 Кб и выполнение займет 2 минуты. Если он согласиться, то выполняйте запрос и положите болт на то сколько он весит и сколько времени он займет. Если время и объем будут больше и юзер будет этим недоволен, то просто принесите извинения. Мы всегда пользуемся такой стратегией, когда заказчик хочет то, что принципиально невозможно сделать. Заказчик хочет чтобы его автомобиль ехал выше скорости света?! Он не понимает наших объяснений что это невозможно и продолжает требовать?! Не вопрос! Делаем спидометр и показываем ему, что он движется со скоростью 800 000 км/с. В 99% случаев заказчик остается полностью довольным! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.10.2015, 13:08:40
|
|||
|---|---|---|---|
Размер запрашиваемых данных |
|||
|
#18+
LumixPS. Обладая огромным опытом практической разработки и зная как устроен реальный мир могу дать вам очень "плохой" совет. :-) Соврите! Кормите юзера дезой! :-) Сообщите ему, что его запрос будет весить 10 Кб и выполнение займет 2 минуты. Если он согласиться, то выполняйте запрос и положите болт на то сколько он весит и сколько времени он займет. Если время и объем будут больше и юзер будет этим недоволен, то просто принесите извинения. Я предпочитаю противоположный образ действий. Я скажу, что выполнение закончится послезавтра, а объём данных будет равен удвоенному размеру БД, но не менее 4 гигабайт. А далее всё то же, но ещё появится повод слупить с него дополнительные вкусняшки за проведённую оптимизацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1832615]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 288ms |

| 0 / 0 |
