php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 24-04-2012, 21:30
Marcus-24-D
 Registrierter Benutzer
Links : Onlinestatus : Marcus-24-D ist offline
Registriert seit: Oct 2007
Beiträge: 173
Marcus-24-D befindet sich auf einem aufstrebenden Ast
Standard Tabellen Kopie

Hi zusammen.

Ich möchte eine MySql "Chat-Nachrichten" Tabelle zu einer gegebenen Uhrzeit
in eine andere Datenbank mit anderem namen kopieren und die alte dann leeren.

Ich habe noch nie Tabellen mit php kopiert.
Wie sieht denn das ganze dann aus?
Da es sich um die Tabelle eines Chats handelt, könnte es sein das es dabei
zu problemen kommt?
Wie ist der Werdegang dabei? Muss ich vor dem kopieren mit LOOK TABLE
die Tabelle sperren und den look nach dem Kopiervorgang wieder aufheben?

Wenn ich alternativ zumindest mach ich das im Moment so mit phpmyadmin
die Tabelle kopiere und danach die Tabelle leere, müssen sich die User neu in den Chat einloggen. Sprich er steht dann.
Daher die Idee mit den look tables.

Aber vielleicht gibts da bessere Varianten dies umzusetzen?
Ich finde jedenfalls keinen Ansatz und hab auch die Suchfunktion schon durchgeschaut, die MySql Referenz gelesen und meinen Freund google gefragt.

Aber was wirklich passendes ist leider nicht dabei oder ich versteh es nicht.

Das nächste Problem stellt sich mir nach dem Kopiervorgang die Tabelle in die andere Datenbank zu schieben oder geht sowas auch direkt beim kopieren?

Danke schonmal für die Antworten
Mit Zitat antworten
  #2 (permalink)  
Alt 25-04-2012, 12:13
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

Zitat:
Zitat von Marcus-24-D Beitrag anzeigen
Ich möchte eine MySql "Chat-Nachrichten" Tabelle zu einer gegebenen Uhrzeit
in eine andere Datenbank mit anderem namen kopieren
Warum möchtest du das tun? Welches Ziel verfolgst du damit?

Was meinst du mit dem Begriff Datenbank? Gerade in der MySQL-Welt ist dieser Begriff mehrdeutig. Meinst du einen anderen Server, eine andere MySQL-Installation oder ein Schema innerhalb derselben MySQL-Installation?

Zitat:
Zitat von Marcus-24-D Beitrag anzeigen
Muss ich vor dem kopieren mit LOOK TABLE
die Tabelle sperren und den look nach dem Kopiervorgang wieder aufheben?
Du meinst sicher LOCK TABLE.

Wenn es nur ein anderes Schema ist, aber dieselbe MySQL-Installation, kannst du z. B. so vorgehen (als ein Statement abschicken!):

Code:
CREATE TABLE `new_schema_name`.`new_table_name`
SELECT *
FROM `old_schema_name`.`old_table_name`;
Trotzdem erscheint mir das Vorhaben nicht sonnvoll. Wenn es um Performance-Probleme geht, die du damit zu beheben glaubst, rate ich dir, das ERM zu überdenken und sinnvolle Indizes zu setzen.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #3 (permalink)  
Alt 26-04-2012, 00:08
Marcus-24-D
 Registrierter Benutzer
Links : Onlinestatus : Marcus-24-D ist offline
Registriert seit: Oct 2007
Beiträge: 173
Marcus-24-D befindet sich auf einem aufstrebenden Ast
Standard

Hey, Danke für die Antwort.

Ich will die Chatlog entsprechend sichern, damit sie im nachhinein noch nach dem leeren lesbar ist.
Außerdem kann ich so die Tabellengrößen klein halten und sie mir dynamisch anzeigen lassen wenn ich Message Kopien alle 12 Stunden anlege.

Ich habe keine eigen programmierte Chatsoftware und auch hab ich mich noch nicht umgehend mit dieser aus zeitlichen Gründen befasst
um genau urteilen zu können. Nur ist mir aufgefallen, das wenn die Tabelle bei ca. 80000 Zeilen angekommen ist der lese und Schreibvorgang recht langsam ist.
Es kann schon sein das hier die indizies nicht richtig gesetzt wurden.
Das müsste ich mir nochmal genauer anschauen.

Aber es ist für mich unabdingbar Kopien der jeweiligen Tabellen anzulegen.
Und.. Ja, genau ich meinte Lock Table.

Jetzt müsst ich genauer wissen was nun Schema bedeutet, ich werds mir gleich mal ergooglen.

Anhand Deines Codes stell ich jedoch fest, das eine Kopie
der Tabelle aus Datenbank A eine neue Tabelle erstellt wird in der selben Datenbank.

Mein Aufbau ist z.B so: Bzw. siehts in PhpMyAdmin so aus:

(Datenbanken)

benutzername a
_irgendwas
_chatlogs

benutzername b
_chatsoftware
-messages
-users

_anderes


Ich möchte gerne die Tabelle messages in die chatlogs von Benutzername a kopieren.

Ich hoff ich drück mich deutlich genug aus.
Wenn nicht, nochmal bitte nachhaken ..Danke für die Hilfe
Mit Zitat antworten
  #4 (permalink)  
Alt 26-04-2012, 00:13
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Marcus-24-D Beitrag anzeigen
Anhand Deines Codes stell ich jedoch fest, das eine Kopie
der Tabelle aus Datenbank A eine neue Tabelle erstellt wird in der selben Datenbank.
Jein. Die neue Tabelle wird in derselben MySQL-Instanz angelegt, aber in einem anderen Schema. In der MySQL-Welt wird ein Schema gerne mal Datenbank genannt. Die neue Tabelle wird also zwar auf dem selben Server und derselben MySQL-Installation angelegt, aber dennoch in einer anderen „Datenbank“ (im Sinne von Schema).
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #5 (permalink)  
Alt 26-04-2012, 01:13
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Marcus-24-D Beitrag anzeigen
Ich will die Chatlog entsprechend sichern, damit sie im nachhinein noch nach dem leeren lesbar ist.
Dafür würde sich dann ggf. die Archive-Engine anbieten.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #6 (permalink)  
Alt 26-04-2012, 17:44
Marcus-24-D
 Registrierter Benutzer
Links : Onlinestatus : Marcus-24-D ist offline
Registriert seit: Oct 2007
Beiträge: 173
Marcus-24-D befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
Jein. Die neue Tabelle wird in derselben MySQL-Instanz angelegt, aber in einem anderen Schema.
Okay, Danke. Und wie gebe ich dann das Ziel an?

Ich meine ...... ahh, ich glaub ich habs geschnallt.

Code:
CREATE TABLE `new_schema_name`.`new_table_name`
SELECT *
FROM `old_schema_name`.`old_table_name`;
in:

Code:
CREATE TABLE `benutzername_a`.`chatlog_#datum#`
SELECT *
FROM `benutzername_b`.`messages`;
Wäre das so richtig? Ich werds heute Abend gleich mal ausprobieren.
Hab wohl nicht richtig gelesen.

Wie siehts denn mit den ID´s eigentlich aus. Ist es denn sinnvoll
mit * alle Felder abzufragen? Oder ist es vielleicht interessanter
wenn ich jedes Feld einzeln angebe. Weil die ID wird doch bestimmt
erstellt oder? Nicht das es dabei zu Problemen kommt?

Und mit der Archiv Engine, wie muss ich die Tabelle in diese Engine umwandeln?

Vielen Dank

Geändert von Marcus-24-D (26-04-2012 um 17:52 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 26-04-2012, 17:58
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Marcus-24-D Beitrag anzeigen
Ist es denn sinnvoll
mit * alle Felder abzufragen? Oder ist es vielleicht interessanter
wenn ich jedes Feld einzeln angebe. Weil die ID wird doch bestimmt
erstellt oder? Nicht das es dabei zu Problemen kommt?
Mit dem Statement wird die Tabelle 1:1 kopiert. Du brauchst dich nicht um die IDs zu sorgen. Auch sonst kann man in eine auto_increment-Spalte durchaus eigene Werte eingeben, auch der Zähler wird in diesem Fall trotzdem automatisch erhöht.

Thema Archive Engine:
Code:
CREATE TABLE `new_schema_name`.`new_table_name`
ENGINE=ARCHIVE
SELECT *
FROM `old_schema_name`.`old_table_name`
WHERE ...;
So langsam könntest du dir aber mal das MySQL-Handbuch vornehmen. Alles, was ich dir hier erzähle, steht dort auch drin.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (26-04-2012 um 18:03 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 26-04-2012, 22:59
Marcus-24-D
 Registrierter Benutzer
Links : Onlinestatus : Marcus-24-D ist offline
Registriert seit: Oct 2007
Beiträge: 173
Marcus-24-D befindet sich auf einem aufstrebenden Ast
Standard

okay, alles klar. Ich werd mirs mal damit gemütlich machen. Vielen Dank für die Hilfe
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kopie von http://www.speedcounter.net/ viva Jobgesuche 1 14-05-2006 13:26
Auftrag: Kopie von freeipods.com viva Jobgesuche 0 11-05-2006 20:21
[Script] web.de kopie gesucht :) Berni Apps und PHP Script Gesuche 6 07-09-2004 15:26
Kopie vom IE Fenster martinm79 Windows (Client/Server) 4 29-08-2004 16:22
[MySQL 4.0] Tägliche Kopie der DB automatisch regeln? jazzdee SQL / Datenbanken 1 10-12-2003 14:55

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

10.12.2018 Berni | Kategorie: MYSQL/ Management
piwik Open-Source Webanalyse-Software ansehen piwik Open-Source Webanalyse-Software

piwik ist eine gute Alternative zu Google Analytics. Viele Features und ein modernes Erscheinungsbild mit aussagefähigen Statistiken in Echtzeit

10.12.2018 phpler | Kategorie: PHP/ Besucherzaehler
jQuery Mobile ansehen jQuery Mobile

Touch-Optimized Web Framework für Smartphones & Tablets

09.12.2018 phpler | Kategorie: AJAX/ Framework
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:03 Uhr.