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 对海量数据的存储管理能力,还保持了传统数据库支持 ACID 和 SQL 等特性。它们有两个显着的共同特点,一是它们都支持关系数据模型,二是它们都使用 SQL 作为其主要的接口。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论