Ваш индекс из 3 полей выглядит хорошо, а EXPLAIN
обещает.
Несмотря на то, что он говорит "55856 строк", это всего лишь оценка , предоставленная EXPLAIN
.
Поскольку key_len =1
, вы знаете, что он использует первый байт вашего составного индекса в качестве равенства / ссылки.
Поскольку в вашем поле Extra
нет файловой сортировки, вы знаете, что ORDER BY
/ sorting - это , обрабатываемый индексом.
Если вы проверите свою handler_%
статистику сеанса, у вас будет более точное представление о том, сколько строк фактически читается.
Побочные мысли:
Поскольку вы знаете, что в конечном итоге вы попадете на диск, чтобы получить свои строки, если 99% ваших данных имеют visibility=2
(просто предположения), вы, вероятно, получите столь же хорошие / быстрые результаты с составным индексом, простона num_subscribers
& num_items
.Или, возможно, как хороший / быстрый, если у вас есть один индекс на num_subscribers
, в зависимости от его кардинальности / уникальности.