Wenn Sie ein Arbeitgeber fragt, ob in einer MySQL-Abfragebedingung ein Index verwendet wird, wie sollten Sie antworten?
Lass es uns testen 1. Erstellen Sie eine Tabelle und indizieren Sie den Feldport Tabelle erstellen `pre_request_logs_20180524` ( `id` int(11) NICHT NULL AUTO_INCREMENT, `ip` char(16) NICHT NULL KOMMENTAR 'Proxy IP', `port` int(8) NOT NULL COMMENT 'Portnummer', `status` enum('Erfolg','Misserfolg') NICHT NULL KOMMENTAR 'status', `create_time` datetime NICHT NULL KOMMENTAR 'Erstellungszeit', `update_time` datetime STANDARD NULL BEIM UPDATE CURRENT_TIMESTAMP, Primärschlüssel (`id`), SCHLÜSSEL `idx_port` (`port`) MIT BTREE ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='Proxy-IP-Anforderungsprotokoll'; Testdaten einfügen INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (1, '192.168.1.199', 53149, 'Fehlgeschlagen', '2018-05-24 14:55:34', '2018-11-16 10:58:13'); INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (2, '192.168.1.100', 10653, 'Erfolgreich', '24.05.2018 14:55:54', '16.11.2018 10:58:13'); INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (3, '192.168.1.112', 50359, 'Fehlgeschlagen', '2018-05-24 14:56:00', '2018-11-16 10:58:13'); INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (4, '192.168.1.67', 30426, 'Fehlgeschlagen', '2018-05-24 14:56:09', '2018-11-16 10:58:13'); INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (5, '192.168.1.209', 49323, 'Fehlgeschlagen', '2018-05-24 14:56:12', '2018-11-16 10:58:13'); INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (6, '192.168.1.209', 51161, 'Erfolgreich', '24.05.2018 14:56:13', '16.11.2018 10:58:13'); INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (7, '192.168.1.12', 54167, 'Erfolgreich', '2018-05-24 14:56:16', '2018-11-16 10:58:13'); INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (8, '192.168.1.64', 20462, 'Erfolgreich', '24.05.2018 14:56:19', '16.11.2018 10:58:13'); INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (9, '192.168.1.53', 22823, 'Fehlgeschlagen', '2018-05-24 14:56:31', '2018-11-16 10:58:13'); INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (10, '192.168.1.85', 48229, 'Erfolgreich', '24.05.2018 14:56:32', '16.11.2018 11:01:11'); INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (11, '192.168.1.85', 48229, 'Erfolgreich', '24.05.2018 14:56:32', '16.11.2018 11:01:15'); INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (12, '192.168.1.85', 48229, 'Erfolgreich', '24.05.2018 14:56:32', '16.11.2018 13:34:37'); 2. SQL testen Erläutern Sie „select * from pre_request_logs_20180524“, wobei Port in (51161,20462,48229) ist. Ausführungsergebnisse Aus den Ergebnissen geht hervor, dass der Index nicht verwendet wird. Aber ziehen Sie keine voreiligen Schlüsse. Sehen wir uns die beiden SQL-Anweisungen an. Wählen Sie * aus pre_request_logs_20180524, wobei Port in (51161,48229) ist; Wählen Sie * aus pre_request_logs_20180524, wobei Port in (51161,20462) ist; Die Ausführungsergebnisse sind wie folgt Sie können sehen, dass die zweite SQL-Anweisung einen Index verwendet. Der Unterschied zwischen den beiden SQL-Anweisungen besteht darin, dass der Portwert unterschiedlich ist. Eine enthält 48229 und die andere 20462. Tatsächlich ermittelt der MySQL-Optimierer automatisch, ob der sekundäre Index verwendet wird, also der Index des Portfelds. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
>>: Vue implementiert Login-Sprung
MySQL ist eine kostenlose relationale Datenbank m...
Inhaltsverzeichnis 1. Beispiel für Drag-Effekt 2....
1. Docker-Cross-Host-Kommunikation Zu den hostübe...
Vorwort Die Zeichenfolgentypen der MySQL-Datenban...
In diesem Artikel wird die spezifische Methode zu...
Da der Einfluss des Unternehmens wächst und seine...
Sortierproblem Ich habe kürzlich auf Geek Time „4...
Box-Größe in CSS3 (Inhaltsbox und Rahmenbox) Mit ...
JS implementiert ein Hover-Dropdown-Menü. Dies is...
Mysql konvertiert Abfrageergebnissatz in JSON-Dat...
Inhaltsverzeichnis Überblick Die Geschichte der C...
Bevor wir Docker offiziell verwenden, machen wir ...
Allgemeine Verwendung von Regexp in Mysql Fuzzy-M...
Beim Erstellen eines Formulars in einem aktuellen...
In diesem Artikel wird der spezifische Code der U...