使用TerarkDB提升MySQL的性能和压缩率.pdfVIP

  • 4
  • 0
  • 约3.98千字
  • 约 13页
  • 2018-03-09 发布于天津
  • 举报
使用TerarkDB提升MySQL的性能和压缩率

使用TerarkDB提升MySQL的性能和压缩率 主讲人:Terark 联合创始人 郭宽宽 互联网和大数据带来的挑战 海量用户带来的海量随机访问 • 写入性能目前通过单节点的持续写入,多节点只读,一般能满足需求 (如阿里云的PolarDB ) • 绝大多数互联网用户对在线服务的访问偏向于随机读 • 比如新闻资讯、搜索引擎、舆情监控、电商类商品检索等 • 对大量随机读的优化,目前没有很好的解决方案( 目前只能增加内存或建立额外的索引缓解) • 非随机读的场景,往往允许离线进行处理,一般不要求事务,暂时还可以忍 内存和SSD依然很贵 • 公司每个月的数据增长没有几个T,都不好意思跟人打招呼 • SSD 的价格依然是机械硬盘的数倍,容量越大,价格差距越大 • SSD 的寿命非常有限 数据库领域的探索没有止境 数据库 MySQL MongoDB TiDB CockroachDB Cassandra PostgreSQL MariaDB PolarDB HBase 存储引擎 TerarkDB InnoDB RocksDB LevelDB WiredTiger 为什么从引擎层优化 ● 目前的存储引擎底层算法,针对随机读较多、内存受限的场景,还有很大的 改进空间 ○ 块压缩对随机访问很不友好 ○ 压缩率太低 ● 引擎层的修改不触及用户现有数据库的使用逻辑,更加透明 ● 引擎层更加通用,可以适应各类数据库产品,应用范围更广,也能和现有的 数据库产品充分整合,设计各类解决方案 TerarkDB 对MySQL 的改进方式 MySQL ● MySQL 以RocksDB 作为存储引擎是发 挥了RocksDB 的LSM 随机写速度快的 优势,也是Facebook 目前使用的主要方 InnoDB MyISAM MyRocks 法(MySQL on RocksDB, 简称MyRocks) ● TerarkDB 基于RocksDB 的接口,将自己 的算法适配到了MyRocks 中,进一步支 TerarkDB 持了MySQL 数据库 块压缩 的问题 “ ” 块数据 块数据 块数据 解压前的块数据 块数据 块数据 块数据 解压后的块数据 块数据 块数据 块数据 ● 存在双缓存问题及无效解压问题 ● 块的尺寸决定压缩率和无效解压的损 块数据 块数据 块数据 失 Terark 可检索压缩算法 单条目标记录 全局压缩 不需要解压即可提取单条记录 ● 不需要常见的数据库使用的DB Cache

文档评论(0)

1亿VIP精品文档

相关文档