MemSQL初体验 - (1)传说中速度最快的关系数据库软件
来源:互联网 发布:https 443端口 编辑:程序博客网 时间:2024/05/20 22:39
最快的RDBMS数据库是哪个呢,之前人们会在ORACLE/SYBASE/DB2这类大型软件产品中争论不休,而后MSSQL SERVER/MYSQL这类的中小型数据库软件也加入战场,尽管论战热门非凡,但结论一直未定,大家比来比去的结果越来越趋向于各说各话(老实讲你要是问我的看法,Oracle目前正大力推广的Exadata倒是最有实力据此头衔的)。
现如今,这个问题可能有答案了,由前FACEBOOK工程师Eric Frenkiel和 Nikita Shamgunov(前微软 SQL Server 高级工程师)开发的MemSQL,号称是全世界最快的关系型数据库。
做为一个新面孔,MemSQL的实现确实与现有的传统RDBMS很不一样,首先MemSQL"也"是内存数据库,所有数据均放置在内存里,这一点其实并不新颖,TimesTen这类产品就不说了,现如今流行的NoSQL产品哪个不是利用内存的高手,所以你看我用了一个"也"字,说明多年DBA一线从业的历练,如今的我说话做事还是相当严谨。
真正的区别在于,按照MemSQL官方文档中的说法,MemSQL使用一种叫做"code generation"的方法,将SQL语句编译成C++并缓存起来,这样下次执行就很快了,号称执行效率比传统的基于磁盘的关系型软件要快30倍。
除了速度快之外,对于传统的开发人员,尤其是使用MySQL数据库的朋友来说,接下来这个消息就更为喜人了,MemSQL与MySQL数据库之间的兼容性做的非常好。MemSQL官方的技术文档有多处明确表示,使用MemSQL和MySQL没有区别(并非全兼容,是说MemSQL支持的,提供了接口的操作,其操作命令与MySQL数据库中实现相同功能的命令行参数与调用方法完全相同),事实也确实如此,mysql命令行或MySQL客户端工具,以及各种MySQL数据库的管理软件,均可以像操作MySQL那样操作MemSQL,并且在操作过程中,除了感觉响应特别的快之外(第一次操作响应慢,之后极快),也确实分辨不出这到底连接的是MemSQL还是MySQL。
基于MemSQL与MySQL之间高度的兼容,三思这里就不准备在MemSQL的使用技巧上费什么笔墨了,下面主要针对性能做些基础测试。
1、配置MemSQL运行环境
先来看看如何配置一套MemSQL环境。MemSQL目前只支持64位系统,软硬件的需求如下:
Distribution
Minimum Version
Command
Amazon AMI
2012.03
sudo yum install gcc-c++
CentOS
6.0
sudo yum install gcc-c++
Debian
6.0
sudo apt-get install g++
Fedora
15
sudo yum install gcc-c++
OpenSUSE
11.3
sudo zypper install gcc-c++
Red Hat
6.1
sudo yum install gcc-c++
Ubuntu
10.04
sudo apt-get install g++
硬件方面需要cpu为inter i3或更高,内存至少8G。不过官方文档也说了,内存低于8G也能运行,因为MemSQL是内存数据库,其存储能力是依赖于内存的,要是内存小存的东西也就少,内存多存的东西也更多。
我这里的测试环境是个虚拟机,内存只有2G,结果启动memsqld服务时抛出要警告:
- Warning: The recommended configuration for MemSQL is at least 8 GB of RAM
不过就目前版本来看,内存多也多不到哪去,因为当前提供的开发版最大也只能使用10G内存。
MemSQL可以直接到其官网下载:http://memsql.com/
输入名称和邮箱地址,就会生成一个licence key,并显示下载和安装页面。
安装挺简单的,所谓的安装其实就是解压缩二进制包,然后检查下环境就o了,步骤如官网页面所示:
$ wget http://download.memsql.com/814d3816f4084953833243fbf6c40d37/memsqlbin_amd64.tar.gz
$ tar xvfz memsqlbin_amd64.tar.gz
$ cd memsqlbin
$ ./check_system
$ ./memsqld --port 3307这下不仅安装完了,连服务都启动好了。说明一下,这是官方的步骤,如果我指定的话,最后一步会加个&符号,将任务放在后台执行。
注意看这里指定了--port选项值为3307,这是避免与MySQL数据库服务默认的3306端口冲突,memsqld启动时如果不指定--port选项,那么默认服务端口也是3306。
提示:
MemSQL也有选项文件,跟MySQL挺像,就位于memsqlbin目录下,名为memsql.cnf。然后就可以拿标准的mysql命令行工具连接该MemSQL服务:
$ mysql -u root -h 127.0.0.1 -P 3307 --prompt="MemSQL> "
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 253
Server version: 5.5.8 MemSQL source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MemSQL> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| memsql |
+--------------------+
2 rows in set (0.00 sec)绳命,处处都充满着井棋,居然连information_schema都有,还真跟MySQL一样。
- MemSQL初体验 - (1)传说中速度最快的关系数据库软件
- 速度最快的数据库---MEMSQL的安装与部署
- MemSQL,号称世界上最快的内存数据库
- MemSQL:号称世界上最快的内存-关系型数据库 兼容MySQL但快30倍
- MemSQL 是由前Facebook工程师创办的,号称世界上最快的分布式关系型数据库,兼容MySQL但快30倍
- 传说中最快的python字典排序方法
- MemSQL初体验 - 性能测试
- 速度最快的分页
- scp 最快的速度
- 如何以最快的速度了解并使用HIVE数据库
- MemSQL 的安装和简单使用 比Mysql快30倍的关系型数据库
- 世界上速度最快的生物
- 最快速度开机的方法
- MemSQL学习笔记-类似MySQL的数据库
- Win10尝鲜体验——初识传说中不一样的Windows
- 关系数据库查询优化的初次体验
- 用最快的速度读技术书
- Ubuntu 11.04 速度最快的源
- angularjs $scope.$watch 遇到的问题
- Linux学习笔记第二章
- 利用PhantomJS 自动截图Kibana ,python发送网站运营日报
- Runtime内省机制
- [数据结构与算法]利用栈完成算术表达式求值收获总结
- MemSQL初体验 - (1)传说中速度最快的关系数据库软件
- Idea上传已有项目到git
- Jupyter
- final and static
- AOJ0118——Property Distribution(DFS)
- Swift3.0语言教程字符串与文件的数据转换
- VS2015下的OpenCV配置使用
- struts1的工作原理
- spring boot 默认启动图案