Приветствую, ЛорЧЕГ.
Есть табличка 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 |
+----+-------------+----------+------------+-------+---------------+---------+---------+------+------+----------+-------------+