Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576

Долго выполняется запрос к БД

02.09.2015, 09:24. Показов 2205. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Есть в БД табличка с 192 полями, в ней может быть около 100 тыс. записей.
запрос count(*) выполняется 1,31 сек. а выбор всех полей таблицы занимает гигантское время, минут 15...
Вот запрос:
SQL
1
2
3
SELECT * FROM CALL.xmtfile
WHERE CALL.xmtfile.work_balance BETWEEN 3000 AND 10000
AND CALL.xmtfile.ID5 LIKE 'BPK'
выполняется за 47 секунд, ну это же ППЦ.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.09.2015, 09:24
Ответы с готовыми решениями:

Запрос выполняется очень долго
Помагите оптимизировать запрос. Выполняется бесконечно долго (Запрос занял 95.9257 сек.) SELECT sklad.* FROM sklad LEFT JOIN prodal ON...

Очень долго выполняется запрос
Запрос выполняется минут десять. Разве так должно быть? Обрисовываю ситуацию. Берутся две главные таблицы и одна связующая со связями...

Долго выполняется запрос
Всем привет. Довольно долго (порядка 30-40 секунд) выполняется запрос. Подскажите где, что неправильно и как его можно ускорить. ...

6
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
02.09.2015, 09:43
Цитата Сообщение от Владимир23 Посмотреть сообщение
CALL.xmtfile.ID5 LIKE 'BPK'
Ты в курсе, что это эквивалентно такому
SQL
1
CALL.xmtfile.ID5 = 'BPK'
?

И какие индексы есть на таблице?
0
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
02.09.2015, 09:51  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
Сообщение от Владимир23
CALL.xmtfile.ID5 LIKE 'BPK'
Ты в курсе, что это эквивалентно такому
Код SQL
1
CALL.xmtfile.ID5 = 'BPK'
?
И какие индексы есть на таблице?
про эквивалентность Like я знаю, индексов нет вообще...кроме id записи
..при всем этом сервак вешается наглухо...
вот лог запроса: SELECT * FROM call.xmtfile
where call.xmtfile.work_balance between 3000 AND 10000
AND call.xmtfile.ID5 = 'BPK'
AND call.xmtfile.ID7 between 1 AND 15
LIMIT 0, 10000 6066 row(s) returned duration - 1.138 sec / fetch - 1.451 sec
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
02.09.2015, 10:01
Цитата Сообщение от Владимир23 Посмотреть сообщение
индексов нет вообще
Тогда что же ты хочешь? Если нет индексов, то единственный способ сделать выборку - FULL SCAN таблицы, т.е. выборка всех строк. Поскольку строк не 10 и не 100, то...
0
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
02.09.2015, 10:05  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
Сообщение от Владимир23
индексов нет вообще
Тогда что же ты хочешь? Если нет индексов, то единственный способ сделать выборку - FULL SCAN таблицы, т.е. выборка всех строк. Поскольку строк не 10 и не 100, то...
но у меня 192 поля, и возможен поиск и условия по любому полю - делать индексы для каждого что ли поля?
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
02.09.2015, 10:11
Цитата Сообщение от Владимир23
возможен поиск и условия по любому полю - делать индексы для каждого что ли поля?
Индексы делаются либо по полям, которые часто встречаются в WHERE, либо тогда, когда без них запрос выполняется недопустимо долго. Другое дело, что для приведенного тобой запроса м.б. либо 2 индекса по каждому полю, либо составной индекс по двум полям. Можно еще попробовать разместить всю таблицу в памяти (если конечно памяти достаточно), но это вопрос к DBA. По крайней мере в Oracle такая возможность есть.
0
5 / 5 / 4
Регистрация: 01.11.2009
Сообщений: 576
02.09.2015, 10:28  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
Сообщение от Владимир23
возможен поиск и условия по любому полю - делать индексы для каждого что ли поля?
Индексы делаются либо по полям, которые часто встречаются в WHERE, либо тогда, когда без них запрос выполняется недопустимо долго. Другое дело, что для приведенного тобой запроса м.б. либо 2 индекса по каждому полю, либо составной индекс по двум полям. Можно еще попробовать разместить всю таблицу в памяти (если конечно памяти достаточно), но это вопрос к DBA. По крайней мере в Oracle такая возможность есть.
в принципе я выбрал основные поля, их около 20 получилось, попробую индексы для каждого поля сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.09.2015, 10:28
Помогаю со студенческими работами здесь

Долго выполняется запрос
Приходят в GET слова для работы с БД, все работает хорошо, кроме одного словочитания, база данных возвращает значения, но это происходит...

Критически долго выполняется запрос
Есть таблица со множеством полей типа: CREATE TABLE big_data ( id serial NOT NULL, ... is_active boolean NOT NULL, ...

Запрос выполняется очень долго
Обращаюсь к специалистам за помощью. Задача, поставленная в данной базе решена. Но последний запрос (запрос2) зависает на 8-10...

MS SQL. Запрос долго выполняется
Доброго времени суток! Помогите разобраться почему запрос долго выполняется select max(Id) as id FROM gftec WHERE ID_TEC=6 GROUP BY...

Sql compact долго выполняется запрос
Всем привет. База sql compact около 1.5 млн записей, все нужные индексы есть. Когда запрос выполняется в отдельном потоке очень...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru