Datenbanken zusammenschweisen

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Also mysql braucht für 35.000 datensätze höchstens 20 sekunden....
Vielleicht hast du es noch nicht gemerkt... :grin:
Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Olli_Moers hat geschrieben:Also mysql braucht für 35.000 datensätze höchstens 20 sekunden....
Vielleicht hast du es noch nicht gemerkt... :grin:
Olli
Tschuldigung, hab mich vertan:
Betroffene Datensätze: 38863 (die Abfrage dauerte 0.9617 sek)

Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
FCM
Mitglied
Beiträge: 1863
Registriert: 03.05.2006 14:47
Kontaktdaten:

Beitrag von FCM »

Ich würde dir empfehlen, das Thema von vorne an zu lesen und nicht irgendwas zu posten.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

FCM hat geschrieben:Ich würde dir empfehlen, das Thema von vorne an zu lesen und nicht irgendwas zu posten.
Ich hab die thematik schon verstanden und eine richtige lösung dafür angeboten.

Du hast zur Zeit 2 DB´s, also 2 mal user, 2x posts usw und die mit den gleichen id´s.
Wenn du die DB´s zusammenlegen willst in eine große DB mußt du dich hauptsächlich um die Primärschlüssel kümmern - inklusive ihrer referenzen.

Und mein lösungsansatz dazu funktioniert.

Gruß, Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
FCM
Mitglied
Beiträge: 1863
Registriert: 03.05.2006 14:47
Kontaktdaten:

Beitrag von FCM »

Du sprachst von Abfrage. Ich nicht.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Olli_Moers hat geschrieben: Betroffene Datensätze: 38863 (die Abfrage dauerte 0.9617 sek)
Olli
Meinst du das?

in dem fall hab ich 38 Tausend id´s in einen höheren - freien - Bereich verschoben (inkrementiert, erhöht, was auch immer).
Phpmyadmin beantwortet leider ALLE änderungen an datensätzen mit "Abfrage".

Und wie gesagt, es funktioniert - und das war deine Frage!

Gruß, Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
FCM
Mitglied
Beiträge: 1863
Registriert: 03.05.2006 14:47
Kontaktdaten:

Beitrag von FCM »

Wenn ich zwei Datenbanken zusammensetze, müsste ich von der 2. db jeden Post, zu diesem die User ID etc. verändern. Das würde bei 35000 Beiträgen etwas lange dauern.
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Wenn ich zwei Datenbanken zusammensetze, müsste ich von der 2. db jeden Post, zu diesem die User ID etc. verändern. Das würde bei 35000 Beiträgen etwas lange dauern.
das macht alles phpmyadmin für dich!

Code: Alles auswählen

UPDATE `phpbb_users` SET `user_id` = user_id +2000
Damit veränderst du jede user_id (aus user_id 59 wird 2059)

Code: Alles auswählen

UPDATE `phpbb_posts` SET `poster_id` = poster_id +2000
Damit veränderst du jede poster_id auf den gleichen wert wie die user_id
Das heisst, das der post mit der poster_id 33 jetzt dem user 2033 gehört.

Das waren 2 von ca 10 änderungen die du machen mußt und diese dauern nun mal weniger als 1 Sekunde - selbst bei 35.000 Datensätzen.


Gruß, Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Olli_Moers hat geschrieben:

Code: Alles auswählen

UPDATE `phpbb_users` SET `user_id` = user_id +2000
Damit veränderst du jede user_id (aus user_id 59 wird 2059)

Code: Alles auswählen

UPDATE `phpbb_posts` SET `poster_id` = poster_id +2000
Damit veränderst du jede poster_id auf den gleichen wert wie die user_id
Das heisst, das der post mit der poster_id 33 jetzt dem user 2033 gehört.
Nicht so flink, Olli! :roll:

Der Ansatz an sich ist gut (und meiner Meinung nach der einzige wirklich praktikable).

Aber leider ist Deine letzte Aussage nicht ausreichend für ein nach der Fusion der DBs funktionierendes Board.
Wenn das Posting, das jetzt dem User 2033 zugeordnet wird, schon einem anderen User der anderen DB aufgedrückt wurde, haben wir einen Post, dessen ID zweimal vergeben wurde. <--- Vorausgesetzt, die DB macht da mit. Aber dagegen sprechen die Inizes.
So oder so, es gibt Probleme.

Es müssen also weitere Aspekte beachtet werden.
Zum Beispiel: post_id, topic_id, group_id, IDs der Foren, Authorisationen, PMs.
Nicht zu vergessen: Zuordnungen, die bei Mods eingepflegt wurden (z.B. Album Mod, Download Mod, Games-Mod).
Was passiert mit der config-Tabelle?
Die Themes_ids der Benutzer muss angepasst werden <--- vllt gibt es die ID, die der Benutzer gewählt hatte garnicht mehr.

Und und und.

Ein Haufen Arbeit.... Aber es wird klappen, da bin ich mir ganz sicher! :D
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Olli Oberhausen
Mitglied
Beiträge: 561
Registriert: 22.10.2004 01:03
Wohnort: Oberhausen NRW
Kontaktdaten:

Beitrag von Olli Oberhausen »

Miriam hat geschrieben: Nicht so flink, Olli! :roll:

Der Ansatz an sich ist gut (und meiner Meinung nach der einzige wirklich praktikable).

Aber leider ist Deine letzte Aussage nicht ausreichend für ein nach der Fusion der DBs funktionierendes Board.
Wenn das Posting, das jetzt dem User 2033 zugeordnet wird, schon einem anderen User der anderen DB aufgedrückt wurde, haben wir einen Post, dessen ID zweimal vergeben wurde. <--- Vorausgesetzt, die DB macht da mit. Aber dagegen sprechen die Inizes.
Ganz richtig, deshalb muß der inkrementor ja auch so gewählt sein, das er über der höchsten user_id der anderen db liegt - dann gibts auch keine probleme. (2000 gilt hier nur als beispiel weil man mich sonst nicht versteht) Der richtige wert hierfür ist mindestens (MAX(user_id) +1)
Miriam hat geschrieben:So oder so, es gibt Probleme.

Es müssen also weitere Aspekte beachtet werden.
Zum Beispiel: post_id, topic_id, group_id, IDs der Foren, Authorisationen, PMs.
Richtig, es sind noch ein paar andere spalten zu beachten. Aber die frage war ja ob es geht - und es geht :D
Miriam hat geschrieben: Nicht zu vergessen: Zuordnungen, die bei Mods eingepflegt wurden (z.B. Album Mod, Download Mod, Games-Mod).
Was passiert mit der config-Tabelle?
Die Themes_ids der Benutzer muss angepasst werden <--- vllt gibt es die ID, die der Benutzer gewählt hatte garnicht mehr.

Und und und.
Die config sollte erstmal so bleiben können wie sie ist.
Miriam hat geschrieben: Ein Haufen Arbeit.... Aber es wird klappen, da bin ich mir ganz sicher! :D
Ist auf jedenfall ein haufen arbeit, aber immernoch weniger als alles zu fuß zu machen.

Gruß, Olli
Neulich im Zoo: Papa, guck mal, da sind Linuxe...
KB-Suche :: db_update_generator :: phpMyAdmin
Winmerge :: Zend Studio
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“