einfache Abfrage:einfache Abfrage: mysql - sehr langsam, MariaDB - gute Leistung
select *
from data.staff AS staff
left join data.contact AS workphones on staff.id = workphones.staff_with_work_phone_id
Mysql Zeit laufen: 5,3 sek.
MariaDb Laufzeit: 0,016 sek.
Kontakt hat ~ 50000 Reihen.
Das Personal hat ~ 600 Reihen.
Was ist der Grund?
Ist es möglich, das gleiche Ergebnis auf mysql zu erreichen?
Vielen Dank!
Erklären MySql (v5.7.14):
+----+-------------+------------+------------+------+--------------------------------+------+---------+------+-------+----------+---------------------------------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+------------+------------+------+--------------------------------+------+---------+------+-------+----------+---------------------------------------+
| 1 | SIMPLE | staff | NULL | ALL | NULL | NULL | NULL | NULL | 606 | 100.00 | NULL |
+----+-------------+------------+------------+------+--------------------------------+------+---------+------+-------+----------+---------------------------------------+
| 2 | SIMPLE | workphones | NULL | ALL | FK_2f7824065c2c4b0fbe5c00da271 | NULL | NULL | NULL | 49180 | 100.00 | Using where. |
| | | | | | | | | | | | Using join buffer (Block Nested Loop) |
+----+-------------+------------+------------+------+--------------------------------+------+---------+------+-------+----------+---------------------------------------+
MariaDB Erklären (v10.0.28):
+----+-------------+------------+------+--------------------------------+--------------------------------+---------+--------------------+-------+----------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+------------+------+--------------------------------+--------------------------------+---------+--------------------+-------+----------+-------+
| 1 | SIMPLE | staff | ALL | | | | | 602 | 100.00 | |
+----+-------------+------------+------+--------------------------------+--------------------------------+---------+--------------------+-------+----------+-------+
| 2 | SIMPLE | workphones | ALL | FK_1249f6bc1d68495090691f3ce02 | FK_1249f6bc1d68495090691f3ce02 | 9 | user_data.staff.id | 25476 | 100.00 | |
+----+-------------+------------+------+--------------------------------+--------------------------------+---------+--------------------+-------+----------+-------+
Der Rest der Verifikationsbedingungen identisch sind. Der Test wurde viele Male durchgeführt.
Welche Versionen dieser Datenbanken? Sind beide richtig abgestimmt? Gleiche Hardware? Haben Sie den Test mehrmals ausgeführt, um sicherzustellen, dass der Cache warmgelaufen ist? Sind die Server beide leer? – tadman
zeigen Sie die ** EXPLAIN ** aus der Abfrage von beiden Server –
Ich brauche Informationen hinzufügen. – Vladimir