Seite 2 von 2

Verfasst: 24.10.2006 14:26
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

Verfasst: 24.10.2006 14:29
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

Verfasst: 26.10.2006 10:23
von FCM
Ich würde dir empfehlen, das Thema von vorne an zu lesen und nicht irgendwas zu posten.

Verfasst: 26.10.2006 12:39
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

Verfasst: 26.10.2006 20:13
von FCM
Du sprachst von Abfrage. Ich nicht.

Verfasst: 26.10.2006 23:43
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

Verfasst: 27.10.2006 08:23
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.

Verfasst: 27.10.2006 09:09
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

Verfasst: 27.10.2006 14:18
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

Verfasst: 27.10.2006 14:37
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