lordgurke
Goto Top

MySQL partitionierte Tabelle auf mehreren Festplatten

Hallo zusammen,

aus Performance-Gründen möchte ich eine relativ große MySQL-Tabelle auf mehrere Festplatten verteilen. Es soll später so sein, dass auf einer gesonderten Festplatte alte Daten archiviert sind, während die aktuellen Daten auf der Hauptfestplatte zur Verfügung stehen.
Jetzt wollte ich das mal ausprobieren und habe mir unter Windows 2003 64 Bit den MySQL-Server Version 5.1.35 (auch 64 Bit) installiert.

Hier mal der Befehl, mit dem ich die Tabelle erzeuge:

CREATE TABLE `tabelle` (
`ID` int(11) NOT NULL auto_increment,
`Feld2` int(11) NOT NULL default '0',  
`Feld3` datetime NOT NULL default '0000-00-00 00:00:00',  
`Feld4` int(11) NOT NULL default '0',  
PRIMARY KEY  (`ID`, `Feld3`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=19169294 ;

PARTITION BY RANGE ( MONTH(Feld3))
   SUBPARTITION BY HASH (TO_DAYS(Feld3)) (
     PARTITION p0 VALUES LESS THAN (4) (
     SUBPARTITION s0
     DATA DIRECTORY = 'D:\\__MySQL-Data\\dat\\p0'  
     INDEX DIRECTORY = 'D:\\__MySQL-Data\\idx\\p0',  
     SUBPARTITION s1
     DATA DIRECTORY = 'E:\\__MySQL-Data\\dat\\p0'  
     INDEX DIRECTORY = 'E:\\__MySQL-Data\\idx\\p0'  
   ),
     PARTITION p1 VALUES LESS THAN (8) (
     SUBPARTITION s2
     DATA DIRECTORY = 'D:\\__MySQL-Data\\dat\\p1'  
     INDEX DIRECTORY = 'D:\\__MySQL-Data\\idx\\p1',  
     SUBPARTITION s3
     DATA DIRECTORY = 'E:\\__MySQL-Data\\dat\\p1'  
     INDEX DIRECTORY = 'E:\\__MySQL-Data\\idx\\p1'  
   ),
     PARTITION p2 VALUES LESS THAN (13) (
     SUBPARTITION s4
     DATA DIRECTORY = 'D:\\__MySQL-Data\\dat\\p2'  
     INDEX DIRECTORY = 'D:\\__MySQL-Data\\idx\\p2',  
     SUBPARTITION s5
     DATA DIRECTORY = 'E:\\__MySQL-Data\\dat\\p2'  
     INDEX DIRECTORY = 'E:\\__MySQL-Data\\idx\\p2'  
   )
);

Die angegebenen Pfade existieren so und sind für den MySQL-Server auch beschreibbar (getestet).
Sobald ich diesen Query allerdings ausführe, wird die Tabelle richtig erstellt, im angegebenen DATA_DIRECTORY werden aber keine Daten erzeugt.
Auch nicht, wenn ich eine neue Zeile in die Tabelle einfüge.
Mir wird beim Ausführen dieses Befehls aber auch keine Fehlermeldung angezeigt, was aber passiert, wenn ich testweise mal einen Laufwerksbuchstaben angebe, der garnicht existiert.

Was mache ich da falsch?
Bin für jeden Hinweis dankbar face-smile


Viele Grüße aus dem Tal
Max

Content-ID: 117586

Url: https://administrator.de/contentid/117586

Ausgedruckt am: 23.11.2024 um 01:11 Uhr

sleipnir
sleipnir 05.06.2009 um 22:12:26 Uhr
Goto Top
Hallo Max,

schau doch einfach mal, ob es korrekt funktioniert, wenn du das Semikolon nach dem deinem Auto_increment entfernst.

Du trennst dadurch den eigenlichen Befehl in zwei einzelne Befehle, wobei nur der erste ausgeführt wird.

MFG

Sleipnir
Biber
Biber 06.07.2009 um 08:48:54 Uhr
Goto Top
Moin maxi89,

ich kann von hier aus nicht so genau erkennen, was los ist...

  • taugt steipnirs Analyse nix und Du wartest auf Alternativen?
  • oder hat steipnir Recht und Du schmollst jetzt, weil es so was Blödes war?

Bitte um Feedback

Grüße
Biber