2016-09-23 2 views
-4

Ich habe zwei Tabellen und in beiden Tabellen bekomme ich 1 Million Datensätze. Und ich benutze Cron Job jede Nacht zum Einfügen von Datensätzen. In der ersten Tabelle kürze ich die Tabelle zuerst und dann die Datensätze einfügen und In der zweiten Tabelle aktualisiere und füge ich einen Datensatz entsprechend dem Primärschlüssel ein. Ich benutze mysql als meine Datenbank. Mein Problem ist, ich muss diese Aufgabe jeden Tag tun, aber ich kann nicht alle Daten einfügen. Was kann die mögliche Lösung für dieses Problem seinEinfügen von 1 Million Datensätze in Mysql

+0

Sie können eine Lösung mit einigen Details erreichen. So etwas ist oben nicht zu sehen. – Drew

+4

"aber ich kann nicht alle Daten einfügen" Warum? – ytbryan

Antwort

0

Wichtig ist, alle Art von MySQL Aktionen und Kontrollen will, wenn Daten veröffentlichen auszuführen, wie autocommit, Indexierung usw.

https://dev.mysql.com/doc/refman/5.7/en/optimizing-innodb-bulk-data-loading.html

Denn wenn Sie dies nicht tun, MySQL eine Menge Arbeit tut, nachdem jeder Datensatz hinzugefügt, und es summiert sich Wenn der Prozess fortschreitet, führt dies am Ende zu einer sehr langsamen Verarbeitung und zum Import und kann möglicherweise nicht an einem Tag abgeschlossen werden.

-2

Wenn Sie MySql verwenden müssen: Deaktivieren Sie für die erste Tabelle die Indizes, führen Sie die Einfügungen aus, und aktivieren Sie Indizes. Dies wird schneller funktionieren.

Alternativ MongoDb wird schneller sein, und Redis ist sehr schnell.

+0

Wenn ein Rails-Benutzer Datenbanken von MySQL wechseln wollte, sollte sein erster Gedanke PostgreSQL sein. Aber das scheint eher ein vorschneller Ratschlag zu sein. –

+0

Mein wichtigster Ratschlag war das Deaktivieren von Indizes. Es war eine gute Sache, und mich dafür zu stimmen, war nicht cool. PostgreSQL ist nicht so viel schneller als MySql, Redis. Abhängig von Ihren Bedürfnissen könnte es eine großartige Lösung sein. Speziell für temporäre Daten (wie in diesem Fall). –

+0

Ich weiß nicht, warum Sie abgelehnt wurden oder wer Sie abgelehnt hat. Ich denke, es ist nicht klar, welches Problem das OP hat ... vielleicht ist es ein Performance-Thema, aber im Moment ist es eine wirklich minderwertige Frage (die ich * abgelehnt habe) –

Verwandte Themen