Вы можете попробовать выбрать только одно поле (скажем, идентификаторы) и посмотреть, поможет ли это, но я не думаю, что это поможет - я думаю, что самые большие издержки - это поиск MySQL правильных строк в первую очередь.
Если вы просто хотите посчитать общее количество строк во всей таблице (то есть без предложения WHERE
), то я считаю, что SELECT COUNT(*) FROM table
довольно эффективно.
В противном случае единственное решение, если вам нужно, чтобы общее количество было видно, - это выбрать все строки. Однако вы можете кэшировать это в другой таблице. Если вы выбираете что-то из категории, скажем, сохраните UID категории и общее количество выбранных строк. Затем всякий раз, когда вы добавляете / удаляете строки, снова подсчитываете итоги.
Другой вариант - хотя он может немного пожертвовать удобством использования - это выбрать только строки, необходимые для текущей страницы и следующей страницы. Если для следующей страницы доступно несколько строк, добавьте ссылку «Далее». Сделайте то же самое для предыдущей страницы. Если у вас есть 20 строк на страницу, вы выбираете не более 60 строк при каждой загрузке страницы, и вам не нужно считать все доступные строки.