开发者社区> 问答> 正文

MySQL5.7中新加的表空间加密功能,其实现是每次以一个page为单位进行加密的吗?

1、MySQL5.7版本中新加了一个表空间加密的功能,其中文档说明
“加解密的逻辑和Transparent Compression类似,在写入文件前加密(os_file_encrypt_page --> Encryption::encrypt),在读出文件时解密数据(os_file_io_complete --> Encryption::decrypt)”。
那么,我想请问每次加密是以一个page为单位?还是以整个数据表空间为单位呢?
每次读取数据的时候是先定位到该page,解密该page呢?
还是每次都要将整个数据表全部读出解密,再定位到需要的page页呢?

2、如果是以page页为一个加密单位,那么是否可以嵌套自己的加密算法,来对比研究自己的加密算法与innoDB的插件中实现的AES加密算法的性能呢?

展开
收起
smile菜鸟柠 2017-02-09 13:23:18 5006 0
2 条回答
写回答
取消 提交回答
  • 是以页为单位,实际上只是加密页的中间部分,页头页尾都不加密。
    算法性能方面,根据你找到的函数往下走,直接替换mysql中的加密算法就ok了

    2019-07-17 20:46:45
    赞同 展开评论 打赏
    1. 应该是以page为单位的,不会是以表空间为单位,这样搞的话效率太低了。
    2. 有兴趣的话,可以按照您的思路搞一搞~
    2019-07-17 20:46:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像