Ich mache einige Web-Crawler und Einfügen des Ergebnisses in eine Datenbank. Es dauert ungefähr 2 Sekunden, um zu kratzen, aber viel länger zum Einfügen. Es gibt zwei Tabellen, Tabelle eins ist eine Liste von URLs und eine IDs, Tabelle zwei ist eine Reihe von TagIds und SiteIds.Wie kann ich eine SQL-Tabelle beschleunigen, die schnelles Einfügen und Auswählen erfordert?
Wenn ich den siteIds Indizes hinzufüge (die MD5-Hashes der URL sind, habe ich dies getan, weil es die Einfügung beschleunigt, da es nicht die Datenbank nach jeder URL-ID abfragen muss, um die Site-Tag-Paarungen hinzuzufügen) Die Geschwindigkeit der Einfügung fällt nach 300.000 Seiten von einer Klippe ab.
Beispiel
Tabelle 1
hash |url |title |description
sjkjsajwoi20doi2jdo2xq2klm www.somesite.com somesite a site with info
Table2
site |tag
sjkjsajwoi20doi2jdo2xq2klm xn\zmcbmmndkd2
Als ich nahm die Indizes ging es viel schneller und ich konnte auf etwa 25 Millionen Datensätze in 12 Stunden hinzufügen, weg, aber die Suche nicht indizierte Tags ist einfach unmöglich.
Ich benutze PHP und MySQL für diese, ich bin offen für Vorschläge für eine bessere Möglichkeit, diese Daten zu organisieren.
Eine ordnungsgemäß indizierte Tabelle würde schneller auswählen, als wenn Sie Indizes nicht ordnungsgemäß verwenden. – Qirel