|
Помогите сделать запрос лучше
|
|||
---|---|---|---|
#18+
Всем привет! Помогите с запросом.. Нужно вытащить object_id до указанного времени (timestamp), а если есть новее, то выводить не нужно. Не могу сформировать запрос..точнее получилось, но работает он отвратительно (0.64 sec) на таблице в 300к записей (индексы шаманил). Сама таблица: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Что получилось сделать: Код: sql 1. 2.
Уверен что можно по другому сделать, но не знаю что в этом случае применять нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 22:30 |
|
Помогите сделать запрос лучше
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2020, 22:46 |
|
Помогите сделать запрос лучше
|
|||
---|---|---|---|
#18+
paver, Спасибо за ответ, запрос работает как надо! Но скорость... (1.10 sec). Добавлял индексы на object_id,timestamp, вместе, отдельно, менял местами их..или тут структура самой таблицы неправильная..? Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2020, 14:15 |
|
Помогите сделать запрос лучше
|
|||
---|---|---|---|
#18+
vinn.consult, как измеряете скорость? Через профайлинг? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2020, 15:11 |
|
Помогите сделать запрос лучше
|
|||
---|---|---|---|
#18+
paver, Смотрел вывод в терминале Код: sql 1.
Такая маленькая таблица и так тормозит. Пытался добавить USE INDEX (object_id,timestamp) запрос стал выполняться за 0.34 sec против 1.40 sec без добавления. Может быть дело в FOREIGN KEY ? или уже все, предел ( ? Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2020, 15:26 |
|
Помогите сделать запрос лучше
|
|||
---|---|---|---|
#18+
vinn.consult, про оптимизации - это не ко мне, я сам чайник. Но неплохо бы посмотреть скорость через show profiles; http://yournet.kz/blog/mysql/kak-uznat-vremya-vypolneniya-mysql-zaprosa https://dev.mysql.com/doc/refman/5.7/en/show-profile.html Ну и смущает объем результирующей выборки. 17644 rows - оно вам зачем? Попробуйте еще посмотреть скорость на инвертированной выборке, смените < на >. Как вообще скорость меняется в зависимости от размера результата. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2020, 15:44 |
|
Помогите сделать запрос лучше
|
|||
---|---|---|---|
#18+
Выполнил профилирование как указано по ссылке, видимо запрос работает нормально, просто данных много :) Они нужны для переноса в другую таблицу (это логика приложения такая). Оставлю все как есть. Спасибо за помощь! Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2020, 16:00 |
|
Помогите сделать запрос лучше
|
|||
---|---|---|---|
#18+
Попробуйте переписать на NOT EXISTS - должно быть не медленнее как минимум. Типа Код: sql 1. 2. 3. 4. 5. 6. 7.
@timestamp - заданный порог времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2020, 18:50 |
|
|
start [/forum/topic.php?fid=47&fpage=18&tid=1828463]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 131ms |
0 / 0 |