©SQL :: Manager
HomeProgramm-InformationenTechnische DetailsKostenloser DownloadKaffee für den Autor
Netzwelt
SQL-FunktionMySQLMariaDB

Die BENCHMARK SQL-Funktion in MySQL und MariaDB - Geschwindigkeit von Ausdrücken messen

BENCHMARKSyntax:BENCHMARK(Anzahl, Ausdruck)
Rückgabe-Wert:INTEGER
Funktions-Typ:Informations-Funktion
Funktions-Beschreibung

Die SQL-Funktion BENCHMARK() führt den "Ausdruck" wiederholt "Anzahl" mal aus.

Es kann verwendet werden, um zu messen, wie schnell die Datenbank den Ausdruck verarbeitet.

Die Funktion eignet sich nicht, um zu messen, wie schnell Abfragen aus Tabellen sind, da der Abfragen-Optimierer das Ergebnis verfälscht.

Der Ergebniswert ist 0. Wenn "Anzahl" negativ ist, gibt die BENCHMARK()-Funktion NULL zurück.

Die Funktion sollte mit Vorsicht verwendet werden, da die Ausführung zeit- oder ressourcenintensiver Ausdrücke die Gesamtleistung des Servers beeinträchtigen kann.

Beispiele der BENCHMARK()-Funktion mit MariaDB 10.3

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19

set @time=sysdate();
SELECT benchmark(100000000, adddate(now(), interval 1 second));
select timediff(sysdate(),@time);

set @time=sysdate();
SELECT benchmark(100000000, (select adddate(now(), interval 1 secondas n from menu limit 1));
select timediff(sysdate(),@time);

set @time=sysdate();
SELECT benchmark(100000000, (select count(*) from menu));
select timediff(sysdate(),@time);

set @time=sysdate();
SELECT benchmark(100000000, (select sum(pos) from menu));
select timediff(sysdate(),@time);

SELECT benchmark(-10000, (select sum(pos) from menu));

benchmark(100000000, adddate(now(), interval 1 second))
int(1)
0
timediff(sysdate(),@time)
time(10)
00:00:06
benchmark(100000000, (select adddate(now(), interval 1 second) as n from menu limit 1))
int(1)
0
timediff(sysdate(),@time)
time(10)
00:00:03
benchmark(100000000, (select count(*) from menu))
int(1)
0
timediff(sysdate(),@time)
time(10)
00:00:01
benchmark(100000000, (select sum(pos) from menu))
int(1)
0
timediff(sysdate(),@time)
time(10)
00:00:00
benchmark(-10000, (select sum(pos) from menu))
int(1)
NULL

Beispiele der BENCHMARK()-Funktion mit MySQL 8.0

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19

set @time=sysdate();
SELECT benchmark(100000000, adddate(now(), interval 1 second));
select timediff(sysdate(),@time);

set @time=sysdate();
SELECT benchmark(100000000, (select adddate(now(), interval 1 secondas n from menu limit 1));
select timediff(sysdate(),@time);

set @time=sysdate();
SELECT benchmark(100000000, (select count(*) from menu));
select timediff(sysdate(),@time);

set @time=sysdate();
SELECT benchmark(100000000, (select sum(pos) from menu));
select timediff(sysdate(),@time);

SELECT benchmark(-10000, (select sum(pos) from menu));

benchmark(100000000, adddate(now(), interval 1 second))
bigint(1)
0
timediff(sysdate(),@time)
time(17)
00:00:21.000000
benchmark(100000000, (select adddate(now(), interval 1 second) as n from menu limit 1))
bigint(1)
0
timediff(sysdate(),@time)
time(17)
00:00:01.000000
benchmark(100000000, (select count(*) from menu))
bigint(1)
0
timediff(sysdate(),@time)
time(17)
00:00:02.000000
benchmark(100000000, (select sum(pos) from menu))
bigint(1)
0
timediff(sysdate(),@time)
time(17)
00:00:02.000000
benchmark(-10000, (select sum(pos) from menu))
bigint(1)
NULL
Die Beispiele wurden mit dem MyWAY SQL-Manager erstellt: Download

Verwendung der BENCHMARK() Funktion in MySQL und MariaDB-Datenbanken

In MySQL und MariaDB wird die BENCHMARK()-Funktion verwendet, um einen bestimmten Ausdruck oder eine bestimmte Funktion wiederholt für eine bestimmte Anzahl von Iterationen auszuführen. Die Funktion wird hauptsächlich für Benchmarking- und Leistungstestzwecke verwendet, wobei die Ausführungszeit eines bestimmten Ausdrucks oder einer bestimmten Funktion bewertet werden kann, um verschiedene Ansätze zu vergleichen oder Leistungsverbesserungen zu messen. Dabei kann der zu messende Ausdruck eder gültige SQL-Ausdruck oder jede gültige SQL-Funktion sein.

Die BENCHMARK()-Funktion gibt das Ergebnis der letzten Iteration des Ausdrucks oder der Funktion zurück, dabei is das tatsächliche Ergebnis selbst in Benchmarking-Szenarien möglicherweise nicht aussagekräftig, da der Hauptzweck darin besteht, die Ausführungszeit zu messen. Die Verwendung der Funktion kann bei Ausführung komplexer oder ressourcenintensiver Vorgänge für eine große Anzahl von Iterationen Auswirkungen auf die Serverleistung haben kann.
ATANATAN2AVGBENCHMARKBINBIN_TO_UUIDBIT_AND

Weitere MySQL und MariaDB SQL Informations-Funktionen

BINLOG_GTID_POSBINLOG_GTID_POS()

CHARSETCHARSET(Zeichenkette)
Mehr zur CHARSET-Funktion

COERCIBILITYCOERCIBILITY(Zeichenkette)
Mehr zur COERCIBILITY-Funktion

COLLATIONCOLLATION(Zeichenkette)
Mehr zur COLLATION-Funktion

CONNECTION_IDCONNECTION_ID()
Mehr zur CONNECTION_ID-Funktion

CURRENT_USERCURRENT_USER()
Mehr zur CURRENT_USER-Funktion

CURRENT_ROLECURRENT_ROLE()
Mehr zur CURRENT_ROLE-Funktion

DATABASEDATABASE()
Mehr zur DATABASE-Funktion

DECODE_HISTOGRAMDECODE_HISTOGRAM()

DEFAULTDEFAULT(Spalte)
Mehr zur DEFAULT-Funktion

FOUND_ROWSFOUND_ROWS()
Mehr zur FOUND_ROWS-Funktion

LAST_INSERT_IDLAST_INSERT_ID([Ausdruck])
Mehr zur LAST_INSERT_ID-Funktion

LAST_VALUELAST_VALUE(Ausdruck [, Ausdruck ...])
Mehr zur LAST_VALUE-Funktion

ROWNUMROWNUM()

ROW_COUNTROW_COUNT()
Mehr zur ROW_COUNT-Funktion

SCHEMASCHEMA()
Mehr zur SCHEMA-Funktion

SESSION_USERSESSION_USER()
Mehr zur SESSION_USER-Funktion

SYSTEM_USERSYSTEM_USER()
Mehr zur SYSTEM_USER-Funktion

USERUSER()
Mehr zur USER-Funktion

VERSIONVERSION()
Mehr zur VERSION-Funktion

Numerische FunktionenZeichenketten-FunktionenReguläre AusdrückeDatum und Zeit-Funktionen
Vergleichs-FunktionenVerschlüsselung & KomprimierungKonvertierungs-FunktionenNULL-Funktionen
Aggregat-FunktionenWindow-FunktionenJSON-FunktionenGeometrische Funktionen
Sequenz-FunktionenInformations-FunktionenDynamische Tabellen-SpaltenSonstige Funktionen
Weitere Informationen zur SQL-Funktion BENCHMARK: mysql.com und mariadb.com
Aktualisiert: 17.09.2023ImpressumKontaktGeschäftsbedingungenDatenschutz & CookiesUpdatesSitemapFacebookLinkedinTwitterStatistics©2020-2024 Heino Cunze-Fischer