LINUX.ORG.RU

Какой запрос быстрее/оптимальнее

 , , ,


0

2

Приветствую, ЛорЧЕГ.

Есть табличка mytable, в которой есть поле id (auto increment), на который наложен индекс и ограничение PRIMARY KEY.

Хочу выбрать самый старший идентификатор из всей таблицы (в таблице ~100 миллионов записей).

Какой запрос будет опитмальнее (MySQL, InnoDB):

1)

EXPLAIN SELECT MAX(id) FROM mytable;                                                                                                          +----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+------------------------------+
| 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 |
+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+------------------------------+

2)

EXPLAIN SELECT id FROM mytable ORDER BY id DESC LIMIT 1;
+----+-------------+----------+------------+-------+---------------+---------+---------+------+------+----------+-------------+
| id | select_type | table    | partitions | type  | possible_keys | key     | key_len | ref  | rows | filtered | Extra       |
+----+-------------+----------+------------+-------+---------------+---------+---------+------+------+----------+-------------+
|  1 | SIMPLE      | mytable | NULL       | index | NULL          | PRIMARY | 4       | NULL |    1 |   100.00 | Using index |
+----+-------------+----------+------------+-------+---------------+---------+---------+------+------+----------+-------------+

По идее 1-й при указаных планах. Select tables optimized away это означает, что таблица дергаться не будет и все найдется сразу в индексе

Psilocybe ★★ ()
Последнее исправление: Psilocybe (всего исправлений: 1)

Select tables optimized away это означает возврат константы, т.е. что то типа select 10 from mytable. Дальше сам уж догадайся, что эффективнее.

vtVitus ★★★★★ ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей