我有一个用例将我的JSON有效负载存储在我的mysql列中,因为我的规模很大,数据正在增长,因为我的有效负载非常大,大多数是以KB为单位。
我正在尝试找到插入时进行压缩的最佳方法。 Mysql提供 AES_ENCRYPT 。
我的问题是:
这会对大规模的性能产生影响吗?还有别的办法吗? 可能的?
我目前正在使用InnoDB引擎。
答案 0 :(得分:0)
加密不会减少数据的大小,并且可能会增加少量,使用AES填充可以添加1到16个字节。加密还会增加加密/解密的时间,具体取决于系统硬件,这可能是一个相当大的命中或最小。
有几种可能的解决方案:
使用zip,compress或其中一个依赖项等方法压缩数据,具体取决于数据可以产生很小的大小减少,使用正确的数据压缩可以产生~90%减少。这将增加CPU开销,但在许多情况下总体上更快,因为从磁盘读取的数据更少。
将大数据保存在文件中并将文件名放在数据库中。这是使用数据库处理大数据的一种相当标准的方法。
答案 1 :(得分:-3)
您可以使用不同的加密和压缩方法。它们可在link获得。
主要的压缩方法是:
com.amazonaws.services.s3.model.AmazonS3Exception: The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint. (Service: Amazon S3; Status Code: 301; Error Code: PermanentRedirect; Request ID: DAE08BA90C01EB5E)
其中一些像DES_ENCRYPT,SHA1,MD5,不像DES那么安全或过旧。
我没有看到很多关于文件压缩程度的信息,所以我建议您在 AES_ENCRYPT(), ENCRYPT()和之间进行测试COMPRESS(),并检查服务器的延迟和响应时间以确定它。
否则,据我所知,这些方法更多地用于在最终用户的服务器和应用程序之间建立更安全的通信。如果压缩这些信息将允许您在服务器上获得大量存储空间,我并不感到舒服。
但与你所说的有效载荷问题相比,它实际上取决于你想做什么以及你所处的结构(企业,小企业,个人开发)。如果你正在开发一个小企业或一个个人项目, mysql 与 innoDB 是好的..但对于像企业等大型项目我建议您转向 Oracle 或< strong> SQL server ,它们可以管理更多数量的数据(非免费)或 PostgreSQL ,这是免费许可。
干杯安迪