@BusterX

Как оптимально найти максимальное значение?

Имеется таблица docs с 500 000 записей:
id | doc | base | date

Индекс: (base, date)

Задача: найти максимальное значение date с определенным значением base

Пробовал запросы:
1. SELECT `date` FROM `docs` WHERE `base` = 'b1' ORDER BY `date` DESC LIMIT 1;
Время запроса: 0.0009
EXPLAIN:
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
| 1 | SIMPLE | docs | NULL | ref | base_date | base_date | 78 | const | 7157 | 100.00 | Using where; Using index |

1. SELECT MAX(`date`) FROM `docs` WHERE `base` = 'b1'
Время запроса: 0.0006
EXPLAIN:
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Select tables optimized away |

Независимо от используемого варианта запроса, переменная состояния "Handler read rnd next" каждый раз увеличивается на 9827.

Стоит ли обращать на это внимание? Как можно оптимизировать?
  • Вопрос задан
  • 268 просмотров
Решения вопроса 1
@Flappy1488
beginner developer
Как я считаю, лучшим решением для Вас станет:
SELECT MAX(поле) FROM `имя_таблицы` WHERE условие
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы