mysql - serp - Wie kann der Eintrag in der Datenbank am schnellsten überprüft werden?



serp snippet generator (2)

Ich suche nach dem schnellsten Weg, um zu überprüfen, ob der Eintrag existiert ...

Mein ganzes Leben habe ich mit so etwas gemacht ...

SELECT COUNT(`id`) FROM `table_name`

Einige Leute verwenden nicht COUNT(id) , sondern COUNT(*) . Ist das schneller?

Was ist mit LIMIT 1 ?

PS Mit id meinte ich natürlich Primärschlüssel.

Danke in einem Rat!

https://src-bin.com


Answer #1

In den meisten Situationen ist COUNT(*) in MySQL schneller als COUNT(id) (wegen der Art, wie Abfragen mit COUNT() ausgeführt werden, kann es in zukünftigen Versionen optimiert werden, damit beide Versionen gleich laufen). Wenn Sie jedoch nur herausfinden möchten, ob mindestens eine Zeile existiert, können Sie EXISTS

einfach:

( SELECT COUNT(id) FROM table_name ) > 0

ein bisschen schneller:

( SELECT COUNT(*) FROM table_name ) > 0

viel schneller:

EXISTS (SELECT * FROM table_name)

Answer #2

Wenn Sie sich keine Gedanken über die Genauigkeit machen, explain select count(field) from table bitte die explain select count(field) from table ist unglaublich schnell.

http://www.mysqlperformanceblog.com/2007/04/10/count-vs-countcol/

Dieser Link erklärt den Unterschied zwischen count(*) und count(field) . Im Zweifelsfall count(*)

Zur Überprüfung, dass eine Tabelle nicht leer ist ...

SELECT EXISTS(SELECT 1 FROM table)





exists