在MySQL数据库中存储XML数据的最佳方法,有一些特定的要求

我正在从一个服务接收XML数据。我收到的测试数据大约有300个XML节点,显然太多了,无法在MySQL数据库中创建单独的行

问题是,理想情况下,我们需要存储所有的数据,并且我们可能需要在将来的某个时候再次引用数据-我们不能只处理一次数据并删除XML字符串

在MySQL数据库中存储这些数据的最佳方式是什么

我曾预测,按照预测的速度,在几个月内,如果我们以TEXT格式存储原始XML数据,数据库可能会增长到500MB左右。从长远来看,这似乎不切实际

您可以创建一个blob列(即mediumtext列)。您可以压缩XML,然后将其存储在MySQL中,而不是将XML纯粹作为字符串插入数据库中

当您从MySQL中读取时,您将再次解压缩它。由于XML是文本,您将获得非常高的压缩率(接近80%的压缩率)。其思想过程是,磁盘IO比压缩/取消压缩所需的时间要长得多,压缩/取消压缩主要受处理器限制

缺点是您将无法再使用SQL进行查询或全文搜索

发表评论