|
Как ускорить запрос?
|
|||
---|---|---|---|
#18+
Здравствуйте! MySQL 5.6 Запрос к БД выполняется от 130 до 150 сек. Использую представление MySQL с таким запросом: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Если делать выборку только из 1 таблицы то выбирается примерно 136000 записей, и делается он быстро, но когда я добавляю Join-ы то мне приходит свыше 3 000 000 записей. Пробовал делать вложенными запросами - скорость около 30 сек. - но тогда не работает представление. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2019, 13:03 |
|
Как ускорить запрос?
|
|||
---|---|---|---|
#18+
Три миллиона записей, навскидку по килобайту, т.е. где-то 3 гига данных... прочитать три гига с диска и отдать на клиента за 30 секунд - это вполне нормальный результат. Да и за 150 - вполне в рамках допустимого. Так что ищи оптимизацию в уменьшении результирующего набора. Ну нахрена тебе 3кк записей? ни посмотреть, ни распечатать... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2019, 13:12 |
|
Как ускорить запрос?
|
|||
---|---|---|---|
#18+
Я это представление потом использую в Yii в GridView. Данные выгружаются в таблицу и я использую фильтры ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2019, 13:21 |
|
Как ускорить запрос?
|
|||
---|---|---|---|
#18+
В принципе мне нужно организовать быстрый поиск по таблице ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2019, 13:23 |
|
Как ускорить запрос?
|
|||
---|---|---|---|
#18+
Вот и передавайте на сервер запрос с условиями фильтрации, а он пусть вернёт только то, что реально нужно. Небось грид, приняв эти гектары данных, тоже впадает в состояние, близкое к коматозному? особенно если начать там что-то фильтровать и пересортировывать... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2019, 13:56 |
|
Как ускорить запрос?
|
|||
---|---|---|---|
#18+
Born я использую фильтры ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2019, 14:40 |
|
Как ускорить запрос?
|
|||
---|---|---|---|
#18+
Это обычные поля, после ввода значения в которые опять идёт запрос к БД Правда когда инфа закешируется то запрос делается быстро ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2019, 14:56 |
|
Как ускорить запрос?
|
|||
---|---|---|---|
#18+
Born опять идёт запрос к БД ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2019, 14:56 |
|
Как ускорить запрос?
|
|||
---|---|---|---|
#18+
Born, У тебя в запросе ВООБЩЕ НЕТ фразы WHERE, нет фильтраци, нет SARG-ов, и нет даже призрачной надежды на то, что запрос может выполняться быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2019, 12:47 |
|
Как ускорить запрос?
|
|||
---|---|---|---|
#18+
авторЕсли делать выборку только из 1 таблицы то выбирается примерно 136000 записей, и делается он быстро, Он НЕ делается бысто, просто ты ДУМАЕШЬ, что он выбирается быстро, потому что ты НЕ выбираешь все записи, а получаешь только первые 50-100 штук. авторно когда я добавляю Join-ы то мне приходит свыше 3 000 000 записей. Пробовал делать вложенными запросами - скорость около 30 сек. - но тогда не работает представление. Ты вообще для начала сделай техзадание, пойми, что тебе вообще надо выбирать... После этого ты напишешь запрос, правильный, с теми данными, которые тебе нужны, а не со всеми, потом отладишь приложение и сделаешь всё правильно, И ТОЛЬКО ПОТОМ МОЖНО БУДЕТ ДУМАТЬ О ТОМ, ЧТОБЫ ЗАПРОС БЫЛ БЫ БЫСТРЫМ. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2019, 12:50 |
|
|
start [/forum/topic.php?fid=47&fpage=29&tid=1828873]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 141ms |
0 / 0 |