powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выделить больше памяти под результаты селекта
25 сообщений из 29, страница 1 из 2
Выделить больше памяти под результаты селекта
    #38942561
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как это сделать, какой параметр надо подправить?
и желательно только на время работы хранимки (хранимка возвращает многовасто)
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942610
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадякак это сделать, какой параметр надо подправить?
и желательно только на время работы хранимки (хранимка возвращает многовасто)

Результаты запроса не хранятся в памяти.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942620
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivвадякак это сделать, какой параметр надо подправить?
и желательно только на время работы хранимки (хранимка возвращает многовасто)

Результаты запроса не хранятся в памяти.
на время работы запроса, не происходит же передача по строчно.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942623
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяMasterZivпропущено...


Результаты запроса не хранятся в памяти.
на время работы запроса, не происходит же передача по строчно.

Откуда и куда передача ?
Есть небольшие буфера в памяти, они внутри ядра и они скорее всего не настраиваются по размеру.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942679
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если результат запроса 20 000 000 строк как с памятью?
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942697
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

может не "с памятью", а с "головой", не опечатались случаем? ;)
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942738
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109вадя,

может не "с памятью", а с "головой", не опечатались случаем? ;)
ну если так считаешь правино - спорить не буду
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942761
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяесли результат запроса 20 000 000 строк как с памятью?

Порциями передаётся с сервера клиенту. Порция -- то, что влезает в буфер.
Если буфер заполнился -- отдаётся клиенту. Пока буфер не освободился, запрос дальше не выполняется -- ждёт.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942783
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПока буфер не освободился, запрос дальше не выполняется -- ждёт.Интересно, а у MySQL бывает ошибка аналогичная "ORA-01555 Snapshot Too Old" ?
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942824
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли буфер заполнился -- отдаётся клиенту. Пока буфер не освободился, запрос дальше не выполняется -- ждёт.
размер буфера? или буфер не память?
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942833
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftMasterZivПока буфер не освободился, запрос дальше не выполняется -- ждёт.Интересно, а у MySQL бывает ошибка аналогичная "ORA-01555 Snapshot Too Old" ?

нет.

Оракл берёт старые записи из журналов транзакций, где они могут стираться. Отсюда и проблема.
Inno хранит все версии в дереве таблицы, физически на страницах, где хранятся данные строк таблицы, как это делают Interbase/FireBird, Postgres.

Фактически номер версии строки -- это ещё одно скрытое поле, последнее, в кластерном индексе первичного ключа таблицы.
Версии строк никогда не стираются (до тех пор, пока они нужны, естественно), и поэтому такой проблемы как ORA-01555 нет.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942836
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторЕсли буфер заполнился -- отдаётся клиенту. Пока буфер не освободился, запрос дальше не выполняется -- ждёт.
размер буфера? или буфер не память?

Я же написал, он кажется никак не конфигурируется.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942846
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глянул в доку, оказывается, существует некий result buffer.
http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_net_buffer_length Each client thread is associated with a connection buffer and result buffer. Both begin with a size given by net_buffer_length but are dynamically enlarged up to max_allowed_packet bytes as needed. The result buffer shrinks to net_buffer_length after each SQL statement.


ОднакоThe session value of this variable is read only.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942867
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
query_alloc_block_size	8192	Размер блока памяти, выделяемой для объектов, создаваемый во время разбора и выполнения запроса.
query_cache_limit	1048576	Не кэшировать результаты, которые превышают это количество байт.
query_cache_min_res_unit	4096	Минимальный размер (в байтах) для блоков, выделенных при кэшировании запроса.
query_cache_size	1048576	Размер памяти, выделяемый для кэширования результатов запроса.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942896
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Это все:
query_cache_limit 1048576 Не кэшировать результаты, которые превышают это количество байт.
query_cache_min_res_unit 4096 Минимальный размер (в байтах) для блоков, выделенных при кэшировании запроса.
query_cache_size 1048576 Размер памяти, выделяемый для кэширования результатов запроса.

соовсем о другом.

Это о кэше результатов запросов, которые лучше вообще отключать.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942898
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
Код: plaintext
1.
query_alloc_block_size	8192	Размер блока памяти, выделяемой для объектов, создаваемый во время разбора и выполнения запроса.


https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_query_alloc_block_size

Это только размер блока, которыми выделяется эта память. Т.е. когда она будет выделяться, будет выделено

n * query_alloc_block_size байт

но размер сам не регулируется.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942900
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадякак это сделать, какой параметр надо подправить?
и желательно только на время работы хранимки (хранимка возвращает многовасто)

Давай с другого боку зайдём -- может быть ты расскажешь, какую проблему ты хочешь решить ?
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942921
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос в хранимке возвращает много строк.
есть мысль ускорить, про остальные опимизационные вещи знаю.
вопрос только про работе с памятью.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942951
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадязапрос в хранимке возвращает много строк.
есть мысль ускорить, про остальные опимизационные вещи знаю.
вопрос только про работе с памятью.

Так всё просто?

Попробуй написать побольше условий в WHERE!

Потом, скорость почти никак не связана с количеством записей.
Ну и -- еще раз -- количество записей почти никак не связано с памятью.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38942955
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,
значит не буду заморачиваться
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38943150
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,

Возвращение "многа строк" - не есть проблема. Тормозит и сильно когда возвращаются "широкие" записи... :)
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38943195
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
широких записей нет, возвращает 2900 строк , работает 0.145с, всего в таблице 28000 строк
innodb
индексы есть. решил поиграться с памятью :)
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38943231
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяшироких записей нет, возвращает 2900 строк , работает 0.145с, всего в таблице 28000 строк
innodbНу вот, наконец-то дождались хоть каких-то конкретных данных.
Покажите сам запрос, его план и DDL всех его таблиц с индексами.
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38943257
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вчеравадяесли результат запроса 20 000 000 строк
сегоднявадявозвращает 2900 строк
завтра будет 4 строки? :)
...
Рейтинг: 0 / 0
Выделить больше памяти под результаты селекта
    #38943466
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109вадя,

Возвращение "многа строк" - не есть проблема. Тормозит и сильно когда возвращаются "широкие" записи... :)

Это утверждение не есть правда.
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выделить больше памяти под результаты селекта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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