|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.09.2011, 20:47 | #1 |
Холост/Не замужем
Форумчанин
Регистрация: 13.11.2007
Сообщений: 283
|
Ускорение выполнения запроса MySQL
Всем привет.
Есть такой запрос: Код:
Но на его выполнение уходит больше минуты Это строка получена после выполнения запроса (HeidiSQL): /* 0 rows affected, 4,073 rows found. Duration for 1 query: 1,391 sec. (+ 116,297 sec. network) */ Вопрос как можно ускорить выполнение этого запроса? При этом использование LIMIT крайне не удобно. До этого прога была на Access и запрос выполнялся за 1 сек. Последний раз редактировалось Stilet; 04.09.2011 в 20:51. |
04.09.2011, 20:51 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А что этот жуткий запроц делает? (делать должен)
I'm learning to live...
|
04.09.2011, 21:10 | #3 |
Холост/Не замужем
Форумчанин
Регистрация: 13.11.2007
Сообщений: 283
|
Возможно я не понял вопроса, но отвечу как понял.
По сути просто делает выборку из главной таблицы (т.е. список лицевых счетов организации выводит). Но из-за присоединенных таблиц жутко долго выбирает. Если делать выборку по другому то возникают проблемы с редактированием и удалением записей. Код:
|
04.09.2011, 21:24 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Уже поздно структуру менять?
I'm learning to live...
|
|
04.09.2011, 21:26 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Конечно не ручаюсь, без отладки тяжело, но если убрать все вложенные запросы (через JOIN) то должно быть существенно быстрей
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
04.09.2011, 22:17 | #6 |
Холост/Не замужем
Форумчанин
Регистрация: 13.11.2007
Сообщений: 283
|
Stilet
Нет, структуру менять не поздно. Спасибо, что напомнил про индексы. Щас буду копать в этом направлении. Аватар Да, скорость выполнения запроса увеличилась. /* 0 rows affected, 4,073 rows found. Duration for 1 query: 6,891 sec. (+ 56,078 sec. network) */ Но все равно минута, это много... Последний раз редактировалось Gulik; 05.09.2011 в 09:00. |
04.09.2011, 22:46 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
т.е. какие будут запросы, на считывание с "густой" реляцией или будет постоянная запись-редактирование - структуру нужно строить исходя из ответов на эти вопросы.
I'm learning to live...
|
|
05.09.2011, 08:58 | #8 |
Холост/Не замужем
Форумчанин
Регистрация: 13.11.2007
Сообщений: 283
|
Stilet
Спасибо, за советы, дело было в индексах, в таблице Owner поле ID не содержало индекса, после его установки все залетало. /* 0 rows affected, 4,073 rows found. Duration for 1 query: 0,021 sec. (+ 0,192 sec. network) */ Да, таблица будет постоянно редактироваться и из всех вариантов запросов этот был самым оптимальным (т.к. в других случаях при сохранении возникали различные ошибки (прим. "Недостаточно сведений для обновления ключевого поля", или удаление записей из присоединенных таблиц)), вот только затормозил Последний раз редактировалось Gulik; 05.09.2011 в 09:01. |
05.09.2011, 22:16 | #9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка выполнения запроса | Maks57 | БД в Delphi | 1 | 01.06.2010 01:12 |
Ошибка выполнения запроса | Maks57 | Помощь студентам | 0 | 31.05.2010 23:46 |
Ошибка выполнения запроса | Maks57 | Помощь студентам | 0 | 31.05.2010 23:44 |
Проблема выполнения запроса | Рустам | PHP | 2 | 31.05.2008 15:15 |
Ошибка выполнения запроса | Квэнди | БД в Delphi | 1 | 13.03.2007 23:12 |