Denken Sie an ein MYSQL-Update und eine Optimierung
Einführung
Heute (5. August 2015, 17:34 Uhr) habe ich eine Anpassung an der Struktur einer Tabelle in der Datenbank vorgenommen, mehrere Felder hinzugefügt und dann die vorherigen Daten aktualisiert. Der Inhalt ist: Passen Sie eines der vorhandenen Felder url
an und aktualisieren Sie dann die neu hinzugefügten Felder type
und typeid
. Später habe ich ein Shell-Skript geschrieben, um die Daten zu aktualisieren. Ich war verwirrt, warum es so langsam war Die Tabellenstruktur ist wahrscheinlich wie oben (viele Felder werden weggelassen), es gibt nur einen gemeinsamen Index
<code>CREATE TABLE `fuckSpeed` ( `uin` bigint(20) unsigned NOT NULL DEFAULT 0, `id` int(11) unsigned NOT NULL DEFAULT 0, `url` varchar(255) NOT NULL DEFAULT '', `type` int(11) unsigned NOT NULL DEFAULT 0, `typeid` varchar(64) NOT NULL DEFAULT '', ...... KEY `uin_id` (`uin`,`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
wähle id,url aus funkSpeed wobei id>=101 und id<=200;uin_id
- Alle Daten durchlaufen und jedes Datenelement aktualisieren
- #Zuerst die Daten verarbeiten und abgleichen. Typ und Typ-ID abrufen
fickenGeschwindigkeit aktualisieren set type=[type],typeid=[typeid] where id=[id]
Nachdem ich der obigen Idee gefolgt bin, habe ich das gefunden Das Update ist mit durchschnittlich 3 Minuten pro Sekunde extrem langsam. Ich habe mir die zu aktualisierenden Daten insgesamt 24 Stunden lang angesehen Mehr als einen Tag. Ähm, ich weinte.
Das Problem gefunden
Das erste, was ich dachte, war, ob es daran lag, dass nur ein Prozess aktualisiert wurde, was dazu führte, dass er 5 Prozesse startete und segmentierte Die IDs lauten wie folgt:
Nachdem ich es ausgeführt habe, habe ich festgestellt, dass es immer noch dasselbe ist. Die Geschwindigkeit hat sich nicht wesentlich verbessert und es gibt immer noch etwa 3 bis 5 Aktualisierungen pro Sekunde. Denken Sie darüber nach, Zeit kann nicht für die Schritte vor dem Einfügen von Daten aufgewendet werden (Abgleichen und Zusammenstellen von SQL-Anweisungen usw.). Beim Einfügen sollte ein Problem auftreten
Werfen wir einen Blick auf meine SQL-Anweisung
. Hier habe ich versucht, es in der Befehlszeile auszuführen, und das Ergebnis ist wie folgt: Es dauerte tatsächlich 0,18 Sekunden Voraussetzung dafür, dass der gemeinsame Index wirksam wird, ist, dass auf der linken Seite ein Feld vorhanden sein muss. Ich habe es mit „explain“ überprüft und es stellte sich heraus, dass es so aussah:<code>./update_url.sh 0 10000 & ./update_url.sh 10000 20001 & ./update_url.sh 20001 30001 & ./update_url.sh 30002 40002 & ./update_url.sh 40003 50003 &</code>
select id,url from funkSpeed where id>=101 and id<=200;
<code>mysql> select id,url from funkSpeed where id>=0 and id<=200; Empty set (0.18 sec)</code>
Wenn ich auswähle, ist die Häufigkeit relativ klein und der ID-Unterschied zwischen jeweils zwei Auswahlen beträgt 10.000, sodass er hier ignoriert werden kann und es hier keine Möglichkeit zur Optimierung gibt, es sei denn, ein Index für die ID hinzugefügt wird.
<code>mysql> explain id,url from funkSpeed where id>=0 and id<=200; +-------------+------+---------------+------+---------+------+--------+-------------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------------+------+---------------+------+---------+------+--------+-------------+ | funkSpeed | ALL | NULL | NULL | NULL | NULL | 324746 | Using where | +-------------+------+---------------+------+---------+------+--------+-------------+ 1 row in set (0.00 sec)</code>
. Ansonsten können Sie auf jeden Fall überprüfen, was ich hier gesagt habe . Jedes Datenelement wird aktualisiert, jedes Datenelement dauert etwa 2 Sekunden, das ist zu beängstigend~~
mysql> select uin,id from funkSpeed where uin=10023 and id=162; +------------+----------+ | uin | id | +------------+----------+ | 10023 | 162 | +------------+----------+ 1 row in set (0.00 sec) mysql> explain select uin,id from funkSpeed where uin=10023 and id=162; +-------------+------+---------------+----------+---------+-------------+------+-------------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------------+------+---------------+----------+---------+-------------+------+-------------+ | funkSpeed | ref | uin_id | uin_id | 12 | const,const | 4 | Using index | +-------------+------+---------------+----------+---------+-------------+------+-------------+ 1 row in set (0.00 sec)Das Problem lösen</p> <p></p>Sobald das Problem gefunden ist, wird es viel einfacher zu lösen~~<p></p> Fügen Sie bei der Auswahl ein Feld <p> hinzu, ändern Sie es wie unten in <code>update fuckSpeed set type=[type],typeid=[typeid] where id=[id]
und verwenden Sie dann beim Aktualisierenexplain update
, damit der Index verwendet wird.Nachdem ich den Code dreimal, fünfmal und zweimal geändert hatte, versuchte ich, einen Prozess zu starten, um den Effekt zu sehen. Tatsächlich wurde der Effekt nicht ein wenig verbessert, mit durchschnittlich 30 Mal/s. Es dauerte also etwa 3 Stunden, bis alle Aktualisierungen abgeschlossen waren.
WeChat-ID: love_skills
uin
Je härter du arbeitest, desto mehr Glück wirst du haben! Je mehr Glück du hast, desto härter arbeitest du!select uin,id,url from funkSpeed where id>=101 and id<=200;
update fuckSpeed set type=[type],typeid=[typeid] where uin=[uin] id=[id]
CEO zu sein ist kein TraumBai Fumei zu gewinnen ist kein Traum
Schwestern-Gegenangriff ist kein Traum
Jetzt ist es soweit! ! Komm schonDas Obige hat die Optimierung eines MYSQL-Updates vorgestellt, einschließlich der relevanten Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wenn Sie in der Ereignisanzeige von Windows 11/10 die Ereignis-ID 55, 50, 140 oder 98 finden oder auf einen Fehler stoßen, dass die Dateisystemstruktur der Festplatte beschädigt ist und nicht verwendet werden kann, befolgen Sie bitte die nachstehende Anleitung, um das Problem zu beheben. Was bedeutet Ereignis 55, Dateisystemstruktur auf der Festplatte beschädigt und unbrauchbar? Bei Sitzung 55 ist die Dateisystemstruktur auf der Ntfs-Festplatte beschädigt und unbrauchbar. Bitte führen Sie das Dienstprogramm chkMSK auf dem Volume aus. Wenn NTFS keine Daten in das Transaktionsprotokoll schreiben kann, wird ein Fehler mit der Ereignis-ID 55 ausgelöst, der dazu führt, dass NTFS den Vorgang nicht abschließen kann und die Transaktionsdaten nicht schreiben kann. Dieser Fehler tritt normalerweise auf, wenn das Dateisystem beschädigt ist, möglicherweise aufgrund fehlerhafter Sektoren auf der Festplatte oder aufgrund der Unzulänglichkeit des Dateisystems im Festplattensubsystem.

Wenn Sie sich mit der AppleID beim iTunesStore anmelden, wird möglicherweise die Fehlermeldung „Diese AppleID wurde nicht im iTunesStore verwendet“ auf dem Bildschirm angezeigt. Es gibt keine Fehlermeldungen, über die Sie sich Sorgen machen müssen. Sie können sie beheben, indem Sie diese Lösungssätze befolgen. Fix 1 – Lieferadresse ändern Der Hauptgrund, warum diese Aufforderung im iTunes Store erscheint, ist, dass Sie nicht die richtige Adresse in Ihrem AppleID-Profil haben. Schritt 1 – Öffnen Sie zunächst die iPhone-Einstellungen auf Ihrem iPhone. Schritt 2 – AppleID sollte über allen anderen Einstellungen stehen. Also, öffnen Sie es. Schritt 3 – Öffnen Sie dort die Option „Zahlung & Versand“. Schritt 4 – Bestätigen Sie Ihren Zugang mit Face ID. Schritt

Sobald Sie in der Alibaba-Software erfolgreich ein Konto registriert haben, weist Ihnen das System eine eindeutige ID zu, die als Ihre Identität auf der Plattform dient. Viele Benutzer möchten jedoch ihre ID abfragen, wissen aber nicht, wie das geht. Dann wird Ihnen der Herausgeber dieser Website unten eine detaillierte Einführung in die Strategieschritte geben. Ich hoffe, es kann Ihnen helfen! Wo finde ich die Antwort auf die Alibaba-ID: [Alibaba]-[My]. 1. Öffnen Sie zuerst die Alibaba-Software. Nachdem Sie die Startseite aufgerufen haben, müssen Sie auf [Mein] in der unteren rechten Ecke klicken. 2. Nachdem wir zur „Mein“-Seite gelangt sind, können wir oben auf der Seite [ID] sehen Ist die ID dieselbe wie die Taobao-ID? Alibaba ID und Taobao ID sind unterschiedlich, aber die beiden
![Ereignis-ID 4660: Objekt gelöscht [Fix]](https://img.php.cn/upload/article/000/887/227/168834320512143.png?x-oss-process=image/resize,m_fill,h_207,w_330)
Einige unserer Leser sind auf das Ereignis ID4660 gestoßen. Sie sind sich oft nicht sicher, was sie tun sollen, deshalb erklären wir es in diesem Leitfaden. Die Ereignis-ID 4660 wird normalerweise protokolliert, wenn ein Objekt gelöscht wird. Daher werden wir auch einige praktische Möglichkeiten zur Behebung des Problems auf Ihrem Computer untersuchen. Was ist Ereignis-ID4660? Die Ereignis-ID 4660 bezieht sich auf Objekte in Active Directory und wird durch einen der folgenden Faktoren ausgelöst: Objektlöschung – Ein Sicherheitsereignis mit der Ereignis-ID 4660 wird protokolliert, wenn ein Objekt aus Active Directory gelöscht wird. Manuelle Änderungen – Die Ereignis-ID 4660 kann generiert werden, wenn ein Benutzer oder Administrator die Berechtigungen eines Objekts manuell ändert. Dies kann passieren, wenn Sie Berechtigungseinstellungen ändern, Zugriffsebenen ändern oder Personen oder Gruppen hinzufügen oder entfernen

Wo kann ich die Tencent-Video-ID überprüfen? Es gibt eine exklusive ID in der Tencent-Video-App, aber die meisten Benutzer wissen nicht, wie sie die Tencent-Video-ID überprüfen können. Als Nächstes finden Sie die grafische Anleitung zum Überprüfen der Tencent-Video-ID Editor für interessierte Benutzer. Schauen Sie vorbei! Tencent Video-Nutzungsanleitung Wo Sie die Tencent Video-ID überprüfen können 1. Öffnen Sie zunächst die Tencent Video-App und betreten Sie den speziellen Bereich über [Personal Center] in der unteren rechten Ecke der Hauptseite. 2. Rufen Sie dann die Seite „Personal Center“ auf und wählen Sie [; 3. Gehen Sie dann zur Seite „Einstellungen“ und klicken Sie unten auf „Konto verlassen“. 4. Schließlich können Sie die exklusive ID-Nummer auf der unten gezeigten Seite anzeigen.

Vue kann das ID-Attribut nicht abrufen, da getElementById in der Hook-Funktion „created()“ verwendet wird und Vue das Mounten noch nicht abgeschlossen hat. Die Lösung besteht darin, „created() {let serachBox = document.getElementById('searchBox') ;.. .}“-Code kann in die Hook-Funktion „mounted()“ migriert werden.

So verbergen Sie das Select-Element in JQuery: 1. Methode hide (), fügen Sie die jQuery-Bibliothek in die HTML-Seite ein, Sie können verschiedene Selektoren verwenden, um das Select-Element auszublenden, der ID-Selektor ersetzt die SelectId durch die ID des von Ihnen ausgewählten Elements tatsächlich verwenden; 2. css()-Methode, verwenden Sie den ID-Selektor, um das ausgewählte Element auszuwählen, das ausgeblendet werden muss, verwenden Sie die css()-Methode, um das Anzeigeattribut auf „none“ zu setzen, und ersetzen Sie selectId durch die ID des ausgewählten Elements.

Asynchrone Verarbeitungsmethode der gleichzeitigen Programmierung von SelectChannelsGo mit Golang Einführung: Die gleichzeitige Programmierung ist ein wichtiger Bereich in der modernen Softwareentwicklung, der die Leistung und Reaktionsfähigkeit von Anwendungen effektiv verbessern kann. In der Go-Sprache kann die gleichzeitige Programmierung mithilfe von Channels- und Select-Anweisungen einfach und effizient implementiert werden. In diesem Artikel wird die Verwendung von Golang für die asynchrone Verarbeitungsmethode der gleichzeitigen Programmierung von SelectChannelsGo vorgestellt und spezifische Informationen bereitgestellt
