【发布时间】:2009-12-20 17:12:48
【问题描述】:
我正在编写一个数据仓库,使用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 中转储数据(可能是文本或其他内容)的最佳方法是什么?
【问题讨论】:
-
即使 Oracle 决定对 mySQL 进行修改,他们也确实无法让开源用户无法使用它。请注意,他们多年来一直在资助 InnoDB 开发。
标签: sql mysql database-design data-modeling database-partitioning