我正在编写一个数据仓库,使用MySQL作为后端。我需要根据两个整数 ID 和一个名称字符串对表进行分区。
一个更具体的例子是假设我正在存储关于一所学校的数据。我想根据 COMPOSITE 'Key' 根据以下内容对 school_data 表进行分区:
school id (integer)
course_id (integer)
student_surname (string)
对于学生的姓氏,它只是姓氏的第一个字符,它决定了数据应该进入哪个“分区表”。
我如何使用 MySQL (5.1) 和 InnoDb 表来实现这个要求?
此外,我正在 Windows 机器上进行开发,但我将部署到 *nix 机器上进行生产。我还有两个问题:
- 我假设从 Windows 迁移到 Linux 时我将不得不转储和恢复数据。如果数据库包含分区表,我不知道这是否可以(指向它在文档中声明的位置的指针会让我放心 - 我无法找到任何关于分区表的转储/恢复的具体提及。
- 我可能还需要更改数据库(如果 Oracle 对 MySQL 用户采取了意外举措),在这种情况下,我需要以某种方式将数据导出到另一个数据库中。在这种情况下(希望不太可能的情况) - 考虑到分区表,从 MySQL 中转储数据(可能是文本或其他内容)的最佳方法是什么?