在MySQL中存储复杂的perl数据结构

时间:2013-05-09 01:20:45

标签: mysql perl persistence

我在一个大型的perl网站上工作,该网站目前将所有配置存储在perl模块中。我需要将这些设置移动到MySQL中。问题是设置是在很多变量中定义的,而且大多数都是复杂的结构(比如散列的散列和散列数组)。

我的第一个想法是使用XML,YAML或Storable perl模块轻松地从一个简单的文件中写入和读取变量,但我的老板不想要这些解决方案。他希望将它存储在MySQL中,因此其他解决方案不是一种选择。

我的问题是,有没有人知道任何可以帮助我完成这项任务的CPAN模块;我基本上需要的是一种将所有perl复杂perl结构映射到MySQL表的方法。

任何建议都会非常感激。谢谢!

2 个答案:

答案 0 :(得分:3)

选项1:在MySQL的TEXT / MEDIUMTEXT / LONGTEXT类型字段中以序列化形式(Data :: Dumper,Storable,JSON等)存储数据(最大65KB / 16MB / 4GB)尺寸分别)

选项2:使用DBIx ORM(对象到关系映射),这是自动将Perl数据映射到DB表的方法(类似于Java的Hybernate)。据我所知,您需要将数据结构转换为对象,尽管可能有DBIx模块可以处理非祝福的数据结构。

坦率地说,除非你需要在MySQL中逐个细节地操作配置数据,否则选项#1会非常简单。但是,如果您的老板的目标是能够查询配置的详细信息,或者逐个操作其各个元素,那么您将不得不使用#2。

答案 1 :(得分:0)

为什么你不想use Storable qw(freeze thaw)使用MySQL?