一,介绍

MemSQL号称世界上最快的分布式关系型数据库,兼容mysql但快30倍,能实现每秒150万次事务。原理是仅用内存并将SQL预编译为C++。

二,部署

官网下载地址:http://www.memsql.com/download/

- 安装

$ tar -xzf memsqlbin_amd64.tar.gz

$ cd memsqlbin



- 启动

$ ./check_system

./memsqld -u root --port 3307



- 关闭

$ killall memsqld

部署要求:

MemSQL 仅仅能执行在 64 位的 Linux 系统,在执行之前必须依照 g++。以下是各种 Linux 发行版上安装 g++ 的方法:

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++

硬件

MemSQL 推荐的最低硬件配置:

  • Intel Core i3 or better processor
  • At least 8GB RAM

MemSQL 也能够在低于 8G 内存的机器上执行,但不推荐。MemSQL 的存储能力受限于系统内存,内存有多大存储就有多大。MemSQL 专门为 SSE 4.2 指令集进行优化,但也能够执行在老的处理器上

三,简单有用

$ mysql -u root -h 127.0.0.1 -P 3306 --prompt="memsql> "

注: 这里-h不要使用localhost,用 127.0.0.1

memsql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| memsql             |

+--------------------+

2 rows in set (0.00 sec)

建库:

memsql> create database chris001;

Query OK, 0 rows affected (0.08 sec)

memsql> show databases;          

+--------------------+

| Database           |

+--------------------+

| information_schema |

| memsql             |

| chris001           |

+--------------------+

3 rows in set (0.00 sec)

建表:

memsql> use chris001;

Database changed

memsql>

memsql> create table test_001 (id int primary key, name varchar(100), addr varchar(200),num int);

Query OK, 0 rows affected (6.71 sec)

memsql>

memsql>

memsql> show tables;

+--------------------+

| Tables_in_chris001 |

+--------------------+

| test_001             |

+--------------------+

1 row in set (0.00 sec)

memsql> desc test_001;

+-------+--------------+------+-----+---------+-------+

| Field | Type         | Null | Key | Default | Extra |

+-------+--------------+------+-----+---------+-------+

| id    | int(11)      | NO   | PRI | NULL    |       |

| name  | varchar(100) | YES  |     | NULL    |       |

| addr  | varchar(200) | YES  |     | NULL    |       |

| num   | int(11)      | YES  |     | NULL    |       |

+-------+--------------+------+-----+---------+-------+

4 rows in set (0.00 sec)

插入数据后查询:

memsql> insert into test_001 values (1,'chris','xxx',100);

Query OK, 1 row affected (1.82 sec)

memsql>

memsql>

memsql> select * from test_001;

+----+-------+------+------+

| id | name  | addr | num  |

+----+-------+------+------+

|  1 | chris | xxx  |  100 |

+----+-------+------+------+

1 row in set (0.71 sec)

memsql> select * from test_001;

+----+-------+------+------+

| id | name  | addr | num  |

+----+-------+------+------+

|  1 | chris | xxx  |  100 |

+----+-------+------+------+

1 row in set (0.00 sec)

memsql> select * from test_001;

+----+-------+------+------+

| id | name  | addr | num  |

+----+-------+------+------+

|  1 | chris | xxx  |  100 |

+----+-------+------+------+

1 row in set (0.00 sec)

memsql> select * from test_001;

+----+-------+------+------+

| id | name  | addr | num  |

+----+-------+------+------+

|  1 | chris | xxx  |  100 |

+----+-------+------+------+

1 row in set (0.00 sec)

memsql> select count(0) from test_001;

+----------+

| count(0) |

+----------+

|        1 |

+----------+

1 row in set (0.63 sec)

memsql>

memsql> select count(0) from test_001;

+----------+

| count(0) |

+----------+

|        1 |

+----------+

1 row in set (0.00 sec)

memsql> select count(0) from test_001;

+----------+

| count(0) |

+----------+

|        1 |

+----------+

1 row in set (0.00 sec)

查询的时候,服务端会打出日志:

136674795 2014-08-15 14:02:31 INFO: Table chris001.test_001 compiled in 6709 miliseconds (3185 miliseconds for header)

136678436 2014-08-15 14:02:31 INFO: Table chris001.test_001 row size 80 bytes (base overhead 32 bytes, column id 4 bytes, column name 12 bytes, column addr 12 bytes, column num 8 bytes)

186966810 2012-06-19 10:03:21 INFO: Query chris001.'insert into test_001 values (?

,?,?

,?

)' compiled in 1825 miliseconds

194366714 2012-06-19 10:03:29 INFO: Query chris001.'select * from test_001' compiled in 712 miliseconds

283342115 2012-06-19 10:04:58 INFO: Query chris001.'select count(0) from test_001' compiled in 632 miliseconds

从上面的測试我们看到,两次查询的首次和之后时间对照:

select * from test_001;                 (0.71 sec)       (0.00 sec)  

select count(0) from test_001;     (0.63 sec)        (0.00 sec)

从日志能够知道,首次查询的耗时基本全都花在编译上了  。 

四,应用场景

MemSQL的插入性能很高,所以它们的目标客户群是那些存在频繁交易的系统用.mysql迁移memsql,參考http://www.linuxeden.com/html/database/20120619/126001.html

參考:http://nodex.iteye.com/blog/1563763

hello MemSQL 入门安装演示样例的更多相关文章

  1. RHEL5 X86-64上安装Oracle 11gR2演示样例与总结

    进入Oracle DBA行业也有好几年了,可是说到安装Oracle的经验,我还真不是特别多,印象中刚開始每次安装都有点磕磕碰碰,随着接触Oracle的时间越来越长,各方面的原理.机制也都有一定的了解后 ...

  2. Thrift的安装和简单演示样例

    本文仅仅是简单的解说Thrift开源框架的安装和简单使用演示样例.对于具体的解说,后面在进行阐述. Thrift简述                                           ...

  3. [hadoop系列]Pig的安装和简单演示样例

    inkfish原创,请勿商业性质转载,转载请注明来源(http://blog.csdn.net/inkfish ).(来源:http://blog.csdn.net/inkfish) Pig是Yaho ...

  4. Tuxedo安装、配置、以及演示样例程序 (学习网址)

    Tuxedo安装.配置.以及演示样例程序 (学习网址): 1.http://liu9403.iteye.com/blog/1415684 2.http://www.cnblogs.com/fnng/a ...

  5. 【Unity 3D 游戏开发】Unity3D 入门 - 工作区域介绍 与 入门演示样例

    一. 工作区域具体解释 1. Scence视图 (场景设计面板) scence视图简单介绍 : 展示创建的游戏对象, 能够对全部的游戏对象进行 移动, 操作 和 放置; -- 演示样例 : 创建一个球 ...

  6. 最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture)

    ===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频 ...

  7. Linux下用OTL操作MySql(包含自己封装的类库及演示样例代码下载)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ClamReason/article/details/23971805 首先重点推荐介绍otl介绍及使 ...

  8. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  9. Java连接redis的使用演示样例

    Java连接redis的使用演示样例 Redis是开源的key-value存储工具,redis通经常使用来存储结构化的数据,由于redis的key能够包括String.hash.listset和sor ...

随机推荐

  1. Stack栈的三种含义

    理解stack栈对于理解程序的执行至关重要.easy混淆的是,这个词事实上有三种含义,适用于不同的场合,必须加以区分. 含义一:数据结构 stack的第一种含义是一组数据的存放方式,特点为LIFO,即 ...

  2. Android KeyCode(官方)

    Constants public static final int ACTION_DOWN Added in API level 1 getAction() value: the key has be ...

  3. Visual Studio 必备神器---转

    会使用工具是人类文明的一大进步,今天敏捷大行其道,好的工具可以大大的提高生产力,这里说的工具都是VS平台上的扩展工具,一些机械的部分可以交给工具去处理,自己多关注其他部分.下面分享下我觉得不错的工具, ...

  4. 重载new delete操作符是怎么调用的

    自定义的new操作符是怎么对英语new 一个对象的?自定义的delete操作符什么情况下得到调用?new一个对象时出现异常需要我操心内存泄露吗?下面的一个例子帮我们解开所有的疑惑. 1. 调用规则   ...

  5. 简化ui文件转换写法

    在命令行敲一串长的命令.枯燥麻烦. #coding:utf-8 import sys import os import subprocess if len(sys.argv) == 2: #节省输入, ...

  6. Java自注三进入

    由于近期学的内容实际操作比較多,所以新的笔记就用代码为主体吧! 本回主要内容是输入,Java中主要用Scanner类和BufferedReader.整体来说不难,但有些细节能够总结,看代码: impo ...

  7. try..catch..finally执行顺序return

    try..catch..finally这个语法大家都很熟悉,就是捕捉异常.处理异常,面试中经常被问到的一个问题是:如果在try...catch中的某某地方return了,那么之后的某某步骤还会不会执行 ...

  8. String 中的秘密

    Navigation:  数据类型相关 > Delphi 的字符及字符串 > [3] - String 中的秘密   //String 的指针地址及实际的内存地址 var str: str ...

  9. python处理中文字符

    1.在py文件中使用中文字符 unicode.py文件内容如下所示: # -*- coding:utf-8 -*- str_ch = '我们women' uni_ch = u'我们women' pri ...

  10. JavaScript常用全局属性与方法

    最近,在学习JavaScript,Java作域链包含全局,记录下常用的全局属性与方法,就当是知识的积累,未列出全部,如需查看全部可参考JS相关的API文档. 常用的全局属性:  全局属性      作 ...