Zu große Tabelle

Ich wollte ein backup machen, also habe ich es mit MysQlDumper versucht.
Internal server error - da die oxseo zu groß ist (Auskunft meines Anbieters).
ich versuchte, die “dynamischen” Einträge zu löschen, Ob das gut ist oder nicht, mit

delete from oxseo where OXTYPE='dynamic' 

wie es in dem thread

http://forum.oxid-esales.com/showthread.php?t=8002&page=4

gut beschrieben ist. Ergebnis ist aber wieder Internal server error.

Also versuchte ich stückweise, das ABC abarbeitend. Erst:

delete from oxseo where OXSEOURL LIKE 'tag/a%'; 

dann

delete from oxseo where OXSEOURL LIKE 'tag/b%'; 

usw.

Aber leider auch Internal server error. Ich habe über eine Million Einträge in der oxseo. Größe 15GiB.

Ich habe noch versucht, alle Datensätze außer den dynamischen (also: static, oxarticle, oxstatic, oxcontent, oxmanufacturer) zu exportieren, aber Internal server error.

mir fällt jetzt nichts mehr ein, außer

Truncate oxseo

Wäre vielleicht möglich, weil hier nur die Tabelle allokiert wird. Aber was passiert dann mit dem shop? Ich kann wohl die statischen Urls nicht einfach in eine Oxseo nach dem truncate einfügen und alles funktioniert wieder? Wird die oxseo benötigt, damit eine url aufgerufen werden kann?

Ich werde künftig regelmäßig die dynamischen Urls “deleten” bei meinen vielen tags. Aber jetzt brauche ich erst mal eine kleinere oxseo, die überhaupt noch anspricht,

Ich könnte in der oxarticles die Inhalte von oxtags1, oxtage2, usw. löschen. Werden dann die Datensätze in der oxseo nicht nach und nach als expired markiert und dann gelöscht, so daß ich in einem halben Jahr wieder eine kleinere oxseo haben werde?

Irgendwelche Tipps?

Die oxseo wird im Verlauf eines Shops riesig. Erstelle die DB mit dem Dumper ohne oxseo und die views. Danach einfach eine leere Tabelle oxseo hinzufügen:

CREATE TABLE IF NOT EXISTS `oxseo` (
  `OXOBJECTID` char(32) COLLATE latin1_general_ci NOT NULL DEFAULT '' COMMENT 'Object id',
  `OXIDENT` char(32) COLLATE latin1_general_ci NOT NULL DEFAULT '' COMMENT 'Hashed seo url (md5)',
  `OXSHOPID` char(32) COLLATE latin1_general_ci NOT NULL DEFAULT '' COMMENT 'Shop id (multilanguage)',
  `OXLANG` int(2) NOT NULL DEFAULT '0' COMMENT 'Language id',
  `OXSTDURL` varchar(2048) COLLATE latin1_general_ci NOT NULL COMMENT 'Primary url, not seo encoded',
  `OXSEOURL` varchar(2048) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL COMMENT 'Old seo url',
  `OXTYPE` enum('static','oxarticle','oxcategory','oxvendor','oxcontent','dynamic','oxmanufacturer') COLLATE latin1_general_ci NOT NULL COMMENT 'Record type',
  `OXFIXED` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Fixed',
  `OXEXPIRED` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Expired',
  `OXPARAMS` char(32) COLLATE latin1_general_ci NOT NULL DEFAULT '' COMMENT 'Params',
  `OXTIMESTAMP` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Timestamp',
  PRIMARY KEY (`OXIDENT`,`OXSHOPID`,`OXLANG`),
  UNIQUE KEY `search` (`OXTYPE`,`OXOBJECTID`,`OXSHOPID`,`OXLANG`,`OXPARAMS`),
  KEY `OXOBJECTID` (`OXLANG`,`OXOBJECTID`,`OXSHOPID`),
  KEY `SEARCHSTD` (`OXSTDURL`(100),`OXSHOPID`),
  KEY `SEARCHSEO` (`OXSEOURL`(100))
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci COMMENT='Seo urls information';

[QUOTE=MichaelH;148542]
Wäre vielleicht möglich, weil hier nur die Tabelle allokiert wird. Aber was passiert dann mit dem shop? Ich kann wohl die statischen Urls nicht einfach in eine Oxseo nach dem truncate einfügen und alles funktioniert wieder?[/QUOTE]
Kannst du, außer du hast eigene statische Einträge erstellt, die Default-Einträge kannst du aus dem Setup-SQL nehmen.

[QUOTE=MichaelH;148542]Wird die oxseo benötigt, damit eine url aufgerufen werden kann?[/QUOTE]
Ja.

Es gab in alten Versionen mal einen Bug der die oxseo zugemüllt hat wenn bestimmte Zeichen in Tags vorhanden waren: http://forum.oxid-esales.com/showthread.php?t=6186

Vielen Dank für Eure Hilfe!
Foxido, ist der Code gut für einen CE 4.6.6. mit deutsch und englisch?

Ich habe nachgedacht und bin zu dem Schluß gekommen, daß ich die dynamischen doch nicht löschen will. Ich werde einfach kein backup der oxseo mehr versuchen. Die Statischen kann ich durch mehrere Abfragen in phpMyAdmin suchen und exportieren, fall ich mal 'ne neue oxseo brauche.

Der Erfolg und hohe Traffic des Oxid-shops hat sicher mit den vielen Urls zu tun.

Ich habe noch einmal die “verschiedenen” Urls unterschieden, mein Anbieter frägt mich, ob es eine Funktion gibt, die dynamischen Urls neu aufbauen zu lassen):

  1. die statischen "default, wie Du sagst, leofonic, z.B. “/mein Konto”.

  2. die statischen Individuellen (z.B. Artikelseiten, Hersteller). Falls sie gelöscht werden kann ich sie durch Abspeichern des Artikels im backend neu erzeugen oder vielleicht einen “trivialen” Sql-Befehl benutzen (z.B. ein unbenutze Spalte in oxarticles mit einem Wert füllen). Es erscheint dann eine Seite “Die Seite … konnte nicht gefunden werden”, aber keine 404, wie in einem anderen thread vermutet, oder ist das eine “designte” 404?

  3. die Dynamischen. Ist hier die url gelöscht, wird in Frontend durch Klick auf den tag eine Neue erzeugt.

In der Tabelle gibt es die Typen:
static (Statisch, z.B. “Warenkorb”, “Kontakt”)
oxarticle (Artikel)
oxcategory (Kategorien)
oxvendor (Lieferanten)
oxcontent (CMS-Seiten)
dynamic (Tags)
oxmanufacturer (Hersteller)

Warum die Tags “dynamic” und nicht “tags” heißen weiß ich nicht.
Alle außer “static” werden vom Frontend selbst automatisch neu generiert ohne dass man irgendwas im Backend oder der DB machen muss.