基于内存的分布式关系数据库:MemSQL 3.1 发布

  • 李士窑

2014 年 8 月 15 日

话题:数据库语言 & 开发架构

MemSQL 是由 Eric Frenkiel(前 Facebook 员工)和 Nikita Shamgunov(前微软 SQL Server 高级工程师)创建的一款基于内存的分布式关系数据库,它通过将数据存储在内存中,并将 SQL 语句预编译为 C++ 而获得极速的执行效率。它兼容 MySQL,且速度要比 MySQL 快 30 倍,能实现每秒 150 万次事务。近日,MemSQL 3.1 发布,该版本 提供了多种升级和安装 3.1 版本的方法,改进了事务和安全访问控制的支持,值得关注的改进包括:

  • 视图支持表级别的安全访问控制,支持在线修改视图
  • 使用 REPLICATE DATABASE 命令可以实现自动、跨数据中心的数据复制。
  • INSERT 和 LOAD DATA 支持分布式事务
  • 支持 ALTER TABLE、DROP INDEX、ALTER TABLE、MODIFY COLUMN 等操作
  • 新增使用 IN 支持不相关子查询
  • 新增 SQL_BIG_RESULT 关键词支持分组查询
  • 通过多个途径提高了 LOAD DATA 的性能
  • 使用 SNAPSHOT 命令手动触发全库的快照
  • INSERT 和 SELECT 支持分布式环境下的操作
  • 新增 ATTACH LEAF ALL 命令

MemSQL 宣称是世界上最快的分布式关系型数据库,从MemSQL 官网上了解到,它具有以下几大特色:

  • 无可比拟的效率:MemSQL 执行效率比传统的基于磁盘的数据库要快 30 倍,它优于其他内存数据库,因为它将 SQL 语句预编译为 C++。
  • 强大的 SQL 执行能力:支持全功能的关系型数据库,开发者不必修改现有程序即可获得 NoSQL 键 / 值存储系统的效率。
  • 支持横向和纵向扩展:MemSQL 支持纵向扩展,CPU 越好效率就越高;而且支持向多 CPU 扩展;此外,MemSQL 还可与 MySQL 节点结合起来处理 PB 级的负载。
  • 默认支持数据持久化:MemSQL 缺省支持数据从内存到磁盘 /SSD 的同步,保证数据的安全可靠。
  • 安装极其简易:只需 30 秒即可完成安装并能够使用 MemSQL,兼容 MySQL,学习曲线平滑。

说起 MemSQL,不得不说下 NewSQL。NewSQL 一词是由 451 Group 的分析师 Matthew Aslett 在研究论文中提出的。NewSQL 是一类兼顾了 NoSQL 和 SQL 优点的新型数据库系统,其目的是把关系模型的优势发挥到分布式体系结构中,或者提高关系数据库的性能到一个不必进行横向扩展的程度。这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACIDSQL等特性。它们有两个显着的共同特点,一是它们都支持关系数据模型,二是它们都使用SQL作为其主要的接口。


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

数据库语言 & 开发架构