Partitionieren einer Datenbanktabelle in MySQL

Ich schreibe ein Data Warehouse mitMySQL als das Back-End. Ich muss eine Tabelle basierend auf zwei Ganzzahl-IDs und einer Namenszeichenfolge partitionieren.

Ein konkreteres Beispiel wäre die Annahme, dass ich Daten über eine Schule speichere. Ich möchte die school_data-Tabelle basierend auf COMPOSITE 'Key' wie folgt partitionieren:

school id (integer)
course_id (integer)
student_surname (string)

Für den Schülernamen bestimmt nur das erste Zeichen des Nachnamens, in welche 'partitionierte Tabelle' die Daten eingefügt werden sollen.

Wie kann ich diese Anforderung mithilfe von MySQL (5.1) mit InnoDb-Tabellen implementieren?

Außerdem entwickle ich meine Software auf einer Windows-Box, aber ich werde sie für die Produktion auf einer * nix-Box bereitstellen. Ich habe zwei weitere Fragen:

Ich gehe davon aus, dass ich die Daten beim Wechsel von Windows zu Linux sichern und wiederherstellen muss. Ich weiß nicht, ob dies in Ordnung ist, wenn die Datenbank partitionierte Tabellen enthält (der Verweis darauf, wo dies in der Dokumentation angegeben ist, wird mich beruhigen - ich konnte keinen konkreten Hinweis auf dump / restore in Bezug auf partitionierte Tabellen finden.Möglicherweise muss ich auch die Datenbanken ändern (wenn Oracle MySQL-Benutzer überrascht). In diesem Fall muss ich die Daten SOFORT in eine andere Datenbank exportieren. In diesem (hoffentlich unwahrscheinlichen) Szenario - was ist der beste Weg, um Daten aus MySQL zu sichern (vielleicht in Text oder etwas anderem), unter Berücksichtigung der partitionierten Tabelle?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage