Particionando uma tabela de banco de dados no MySQL

Estou escrevendo um data warehouse, usandoMySQL como o back-end. Eu preciso particionar uma tabela com base em dois IDs inteiros e uma string de nome.

Um exemplo mais concreto seria assumir que estou armazenando dados sobre uma escola. Desejo particionar a tabela school_data com base em COMPOSITE 'Key' com base no seguinte:

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

Para o sobrenome do aluno, é apenas o primeiro caractere do sobrenome que determina em qual tabela particionada os dados devem ser inseridos.

Como posso implementar esse requisito usando o MySQL (5.1) com tabelas InnoDb?

Além disso, estou fazendo meu desenvolvimento em uma caixa do Windows, mas vou implantar em uma caixa * nix para produção. Eu tenho mais duas perguntas:

Estou assumindo que terei que despejar e restaurar os dados ao migrar do Windows para o Linux. Eu não sei se isso está OK se o banco de dados contém tabelas particionadas (ponteiro para onde afirma isso na documentação irá colocar minha mente para descansar - Eu não fui capaz de encontrar qualquer menção específica de despejo / restauração sobre tabelas particionadas.Talvez eu também precise alterar os bancos de dados (se a Oracle puxar uma surpresa para os usuários do MySQL), caso em que precisarei ALGUMA VEZ exportar os dados para outro banco de dados. Neste cenário (espero que improvável) - qual será a melhor maneira de despejar dados do MySQL (talvez para texto ou algo assim) tendo em mente a tabela particionada?

questionAnswers(2)

yourAnswerToTheQuestion