count(*) vs limit 1, тест эффективности, результат такой же, как вы думаете?

MySQL

Я раньше выкладывал статью в паблике, чтобы узнать, существует ли SQL.Больше не считайте.Это очень долго.В статье я писал о том,существуют ли данные в таблице.count 和 limit 1Какой вывод использовать, однако, нет фактического доказательства. Поэтому мой друг спросил меня, могу ли я сделать реальную оценку и организовать ее.

本文仅仅针对以下两种sql测评。

Два способа написания SQL

count()
SELECT count(*) FROM table 
limit 1
SELECT 1 FROM table LIMIT 1

Предпосылки оценки

Двигатель: ИННОДБ

Структура таблицы

Давайте сначала посмотрим на структуру таблицы ниже, и настройки не слишком сложны.

explain

Каждый умный сначала объяснит, а потом всем покажет.

limit 1
count

Да, я считаю, что все это видят, нет никакой разницы. Начнем с фактических данных.

Оценка начинается

первый раунд тестирования

Сначала вставьте в него 1000 единиц данных.

count

limit 1

Второй раунд тестирования

Продолжайте вставлять 10 000 фрагментов данных.

count
limit 1

После второго раунда тестирования кажется, что время почти истекло. Продолжайте измерять.

Третий раунд испытаний

Продолжайте вставлять 100 000 записей в третьем раунде и посмотрите.

640
640

Это исполнение немного застопорилось, немного ждем и пьем чай (прошло 6 минут).

Хорошо, данные на месте. Протестируйте снова.

count
limit 1

В этом раунде лимит 1 имеет преимущество.

Раунд 4 Оценка

ок, продолжайте 4-й раунд оценки, вставьте еще 100 000, ведь по 6 минут за раз.

count
limit 1

Сейчас все больше склоняется к ограничению 1. Тест продолжается.

5-й раунд оценки

Продолжайте вставлять 100 000 фрагментов данных.

count
limit 1

6-й раунд тестирования

Вставьте еще 200 000 фрагментов данных.

count
limit 1

Это все здесь, не ленитесь, продолжайте тестировать.

7-й раунд тестирования

Вставьте еще 200 000 фрагментов данных.

count
limit 1

Эффект более очевиден, тогда продолжайте.

8-й раунд тестирования

Вставьте еще 200 000 фрагментов данных.

count
limit 1

9-й раунд тестирования

В последнем раунде вставьте еще 100 000 единиц данных.

count
limit 1

Наконец

На самом деле результаты уже очевидны, и редактор сводит все результаты оценки в табличку, которая является железной.

Суммировать

理论好固然重要,理论是可以从书中学习到的,经验可能需要我们自己去实现才能获取到,希望这篇文章能给大家带来一些帮助。

В этой статье используетсяmdniceнабор текста