Vorwort Jeder weiß, dass das Partitionsfeld Teil des Primärschlüssels sein muss. Müssen Sie also nach dem Erstellen eines zusammengesetzten Primärschlüssels einen separaten Index für das Partitionsfeld hinzufügen? Gibt es irgendeine Wirkung? Lassen Sie es uns überprüfen. Werfen wir ohne weitere Umschweife einen Blick auf die ausführliche Einführung. 1. Erstellen Sie eine neue Tabelle effect_new (partitioniert nach Monat basierend auf der Erstellungszeit) Tabelle „effect_new“ erstellen ( `id` bigint(20) NICHT NULL AUTO_INCREMENT, `Typ` tinyint(4) NICHT NULL STANDARD '0', `Zeitzone` varchar(10) DEFAULT NULL, `date` varchar(10) NICHT NULL, `Stunde` varchar(2) DEFAULT NULL, `position` varchar(200) DEFAULT NULL, `Land` varchar(32) NICHT NULL, `create_time` datetime NICHT NULL STANDARD '1970-01-01 00:00:00', PRIMÄRSCHLÜSSEL (`id`,`Erstellungszeit`), SCHLÜSSEL `index_date_hour_country` (`Datum`,`Stunde`,`Land`) ) ENGINE=InnoDB AUTO_INCREMENT=983041 DEFAULT CHARSET=utf8 PARTITION NACH BEREICH (BIS_TAGE (`Erstellungszeit`)) (PARTITION p0 WERTE WENIGER ALS (736754) ENGINE = InnoDB, PARTITION p1 WERTE WENIGER ALS (736785) ENGINE = InnoDB, PARTITION p2 WERTE WENIGER ALS (736815) ENGINE = InnoDB, PARTITION p3 WERTE WENIGER ALS (736846) ENGINE = InnoDB, PARTITION p4 WERTE WENIGER ALS (736876) ENGINE = InnoDB, PARTITION p5 WERTE WENIGER ALS (736907) ENGINE = InnoDB, PARTITION p6 WERTE WENIGER ALS (736938) ENGINE = InnoDB, PARTITION p7 WERTE WENIGER ALS (736968) ENGINE = InnoDB, PARTITION p8 WERTE WENIGER ALS (736999) ENGINE = InnoDB, PARTITION p9 WERTE WENIGER ALS (737029) ENGINE = InnoDB, PARTITION p10 WERTE WENIGER ALS (737060) ENGINE = InnoDB); 2. Geben Sie einige Daten ein, INSERT INTO `effect_new` (`id`, `Typ`, `Zeitzone`, `Datum`, `Stunde`, `Position`, `Land`, `Erstellungszeit`) VALUES ('1', '0', 'GMT+8', '01.07.2017', '', 'M-NotiCleanFull-FamilyRecom-0026', '', '02.07.2017 00:07:02'); INSERT INTO `effect_new` (`id`, `Typ`, `Zeitzone`, `Datum`, `Stunde`, `Position`, `Land`, `Erstellungszeit`) VALUES ('2', '1', 'GMT+8', '30.09.2017', '23', 'Ma5dtJub', 'EG', '01.10.2017 00:00:00'); INSERT INTO `effect_new` (`id`, `Typ`, `Zeitzone`, `Datum`, `Stunde`, `Position`, `Land`, `Erstellungszeit`) VALUES ('3', '1', 'GMT+8', '10.09.2017', '10', '28', 'DZ', '11.09.2017 00:08:20'); INSERT INTO `effect_new` (`id`, `Typ`, `Zeitzone`, `Datum`, `Stunde`, `Position`, `Land`, `Erstellungszeit`) VALUES ('4', '1', 'GMT+8', '2017-02-03', '20', '32', 'AD', '2017-02-04 00:00:00'); INSERT INTO `effect_new` (`id`, `Typ`, `Zeitzone`, `Datum`, `Stunde`, `Position`, `Land`, `Erstellungszeit`) VALUES ('5', '0', 'GMT+8', '05.03.2017', '2', NULL, 'AI', '06.03.2017 02:10:00'); INSERT INTO `effect_new` (`id`, `Typ`, `Zeitzone`, `Datum`, `Stunde`, `Position`, `Land`, `Erstellungszeit`) VALUES ('6', '0', 'GMT+8', '2017-09-23', '13', 'M-BrandSplash-S-0038', 'AG', '2017-09-23 13:00:00'); INSERT INTO `effect_new` (`id`, `Typ`, `Zeitzone`, `Datum`, `Stunde`, `Position`, `Land`, `Erstellungszeit`) VALUES ('7', '1', NULL, '2017-10-13', '12', 'BB-Main-AppAd-0018', 'AF', '2017-10-14 12:00:00'); INSERT INTO `effect_new` (`id`, `Typ`, `Zeitzone`, `Datum`, `Stunde`, `Position`, `Land`, `Erstellungszeit`) VALUES ('8', '0', 'GMT+8', '28.10.2017', '2', 'M-ChargeReminder-S-0040', 'AE', '29.10.2017 00:00:00'); INSERT INTO `effect_new` (`id`, `Typ`, `Zeitzone`, `Datum`, `Stunde`, `Position`, `Land`, `Erstellungszeit`) VALUES ('9', '1', 'GMT+8', '2017-10-09', NULL, '30', 'AI', '2017-10-10 00:09:00'); INSERT INTO `effect_new` (`id`, `Typ`, `Zeitzone`, `Datum`, `Stunde`, `Position`, `Land`, `Erstellungszeit`) VALUES ('10', '0', 'GMT+8', '2017-10-05', '5', 'M-BrandSplash', 'LA', '2017-10-06 05:10:00'); 3. Aussagen analysieren PARTITIONEN ERKLÄREN Wählen Sie * aus effect_new_index wobei create_time = '2017-10-14 12:00:00' Das Ergebnis ist:
4. Fügen Sie den Index idx_ctime zur Tabelle effect_new hinzu 5. Analysieren Sie den Ausführungsplan nach dem Hinzufügen des Index Das Ergebnis ist:
6. Fazit: Obwohl die Tabelle durch dieses Feld partitioniert wird, ist dies nicht dasselbe wie ein Index. Nach der Partitionierung können wir nur sagen, dass die Datensätze mit einem bestimmten Wert im Feld in einer bestimmten Partition liegen, aber es handelt sich nicht um einen Index und es dauert eine Weile, sie zu finden. Manchmal ist der Primärschlüssel nicht identisch mit der Partitionierungsspalte. Wenn Sie einen gruppierten Index für den Primärschlüssel erstellen möchten, müssen Sie die Partitionierungsspalte einschließen, um daraus einen zusammengesetzten Primärschlüssel zu machen. Verfügt die Partitionsbasisspalte in diesem Fall also nicht über einen Index? Ja, aber es ist nicht schnell genug. Wenn die Partitionierungsspalte in diesem zusammengesetzten Index nicht an erster Stelle steht, ist sie nicht schnell genug. Wenn die Partitionierungsspalte häufig als Filterbedingung in Suchanweisungen verwendet wird, muss ein zusätzlicher Index für die Partitionierungsspalte erstellt werden. Zusammenfassen Dies ist der vollständige Inhalt dieses Artikels. Er weist noch viele Mängel auf. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Referenzwert für das Studium oder die Arbeit aller hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Tutorial zur Installation von VMware WorkStation 14 Pro unter Ubuntu 17.04
>>: Dateifreigabe zwischen Ubuntu und Windows unter VMware
Heute werde ich mit Ihnen über das Löschen von Fl...
Wie unten dargestellt: XML/HTML-CodeInhalt in die...
Vorwort Die Sprachklassifikation von SQL umfasst ...
Das Installations- und Verwendungstutorial für My...
rm-Befehl Der Befehl rm wird von den meisten Benu...
Inhaltsverzeichnis 1. Übersicht 2. Django-Projekt...
Ich bin vor kurzem mit MySQL in Berührung gekomme...
In diesem Artikelbeispiel wird der spezifische Ja...
Inhaltsverzeichnis Da Vuex einen einzelnen Zustan...
1. Erstellen Sie eine Testtabelle CREATE TABLE `t...
Inhaltsverzeichnis 1. Seitenlayout 2. Bild-Upload...
Enctype: Gibt den Kodierungstyp an, der vom Browse...
Nachdem die Anwendung in einen Container verpackt...
Inhaltsverzeichnis Vorwort 1. Mit vue-cli 1. Defi...
Vorwort Im vorherigen Artikel haben wir hauptsäch...