每秒1.28万亿行,最快的分布式关系数据库MemSQL又破记录了!

article/2025/9/13 22:14:14

众所周知,如果交互式响应时间小于四分之一秒,那么人们会获得令人难以置信的满意度。当你提供的响应时间下降到大约四分之一秒时,交互对用户而言是即时的。

但是,由于大数据集和并发需求,给所有客户提供的速度水平似乎无法实现。因此,开发人员有时会采用快捷方式,例如预计算。这可能会导致严苛的用户体验,如果稍微调整一些查询,例如添加一个额外的分组列,则它会突然变慢几个数量级。这也意味着你的交互不是实时的,即不是最新的数据。

MemSQL为你提供了用户需要的交互式响应时间,可以在庞大的数据集上并发访问,而无需诉诸预先计算的结果。以每秒万亿行的速度运行

MemSQL号称世界上最快的分布式关系数据库,MemSQL 6于2017年末发布,它包含了用于以极快的速度对列存储数据执行单表分组/聚合查询的新技术。该实现基于以下方法:(1)直接对列存储中的编码(压缩)数据执行操作,(2)将查询编译为机器码,(3)向量化执行,以及(4)使用Intel AVX2单指令,多个数据(SIMD)增强。当按字段,整数值或运行长度编码分组列时,MemSQL以每个核心每秒超过30亿行的速度运行一个单一表组/聚合,速率达到峰值。组数越少,聚合函数越简单,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一样。


http://chatgpt.dhexx.cn/article/9GsQUmRn.shtml

相关文章

速度最快的数据库---MEMSQL的安装与部署

1. 什么是MEMSQL 前Facebook工程师创办的MemSQL公司获500万美元投资。号称世界上最快的分布式关系型数据库,兼容MySQL但快30倍,能实现每秒150万次事务。原理是仅用内存并将SQL预编译为C。2012年12月14,MemSQL 1.8 发布,号称最快的…

memsql-官宣世界最快的内存关系型数据库安装部署

官网地址:https://www.memsql.com/ 获取到的license:BGNhZmY4YjViM2Y1OTRhOTdiOTNlNTE0NmU3MGJhN2NlAAAAAAAAAAAEAAAAAAAAAAwwNAIYJLLETZcXn8NHKfJAS/Iai5hUjzaCMQ5PAhht2vDZAS1q1a49DPsq5gMGKY9AI0wmaSkAAA 1,memsql官网介绍 MemSQL 是一个分布式关系数…

memSQL简介

前言 由前Facebook工程师创办的MemSQL,号称世界上最快的分布式关系型数据库,兼容MySQL但快30倍,能实现每秒150万次事务。原理是仅用内存并将SQL预编译为C。 MemSQL 提供免费的开发者版本(数据限制32G)和全功能试用版…

统一异常处理解决方案

💁 作者:小瓦匠 💖 欢迎关注我的个人公众号:小瓦匠学编程。微信号:xiaowajiangxbc 📢 本中涉及到的所有代码资源,可以在公众号中获取,关注并回复:源码下载 👉…

SpringBoot统一异常处理详解

文章目录 一、概述1、统一异常处理介绍2、原理和目标 二、Assert(断言)1、概述2、Assert自定义实战2.1 自定义接口Assert2.2 自定义异常2.3 Enum整合2.4 实战检测 三、统一异常处理器1、异常处理器说明1.1 handleServletException1.2 handleBindException和handleValidExceptio…

Shell 异常处理

原创:转载请注明出处 #!/bin/bash ##################服务器执行以下脚本############################# ## 重新上传脚本到服务器 -> 部署启动的脚本#当任何一行的命令执行错误的时候(比如命令写错了)直接退出,不继续往下执行…

java中的统一异常处理

目录 统一异常处理的原因 如果进行统一异常处理 1、编写统一异常处理类与方法 2、编写自定义异常类 3、定义异常枚举类 4、抛出指定异常 小提醒 统一异常处理的原因 在我们写代码的时候,因为各种场景需要进行各种校验,我们就可能会进行多种响应&…

JNI异常处理

前言 本文所要介绍的异常处理是指通过JNI调用java层方法时产生的异常处理,并不是指JNI调用Native层函数时产生的异常处理,如果童鞋们想要了解Native层的异常处理可以参考笔者之前的文章《C之异常处理》 按照java的经验,当发生异常而又没有捕…

Python——异常处理

文章目录 异常Python中的异常类捕获与处理异常自定义异常类with语句断言 异常 异常是在程序执行过程中发生的影响程序正常执行的一个事件。异常是Python对象,当Python无法正常处理程序时就会抛出一个异常。一旦Python脚本发生异常,程序需要捕获并处理它…

python异常处理输入不是整数_Python异常处理

异常处理: Python程序运行语法出错会有异常抛出不处理异常会导致程序终止 示例:用户输入一个整数转换成int型,如果用户输入的不是数字而是其他例如字母等则会出现异常 不使用异常处理代码的处理方法 #cat 异常处理.py abc = input("请输入一个数字") if not ab…

ARM的异常处理机制

异常种类 ARM共有如下7种异常模式: 复位(RESET):当处理器复位引脚有效时,系统产生复位异常中断。复位异常中断通常在系统加电和系统复位时发生,直接跳转到复位中断向量处执行称为软复位。未定义的指令(UDE…

spring异常处理

在项目中采用spring的异常处理机制: 示例一、在Controller中加ExceptionHandler注解定义异常拦截的方法,在方法中定义返回的页面: Controller public class ExceptionTestController {ExceptionHandlerpublic String handleException(Excep…

C语言异常处理

文章目录 前言一、 异常表达二、 异常报告三、 异常处理 前言 错误与异常: 错误与异常都是在程序编译或者运行时出现的错误, 不同的是,异常可以被开发人员捕捉和处理;而错误,一般不需要开发人员处理(也无法…

SpringBoot全局异常处理

文章目录 异常处理方案分类基于请求转发基于异常处理器基于过滤器 常见异常处理实现方案1. BasicExceptionController2. ExceptionHandler3. ControllerAdviceExceptionHandler4. SimpleMappingExceptionResolver5. HandlerExceptionResolver6. Filter 全局异常处理实现方案1. …

springboot整合之统一异常处理

特别说明:本次项目整合基于idea进行的,如果使用Eclipse可能操作会略有不同,不过总的来说不影响。 springboot整合之如何选择版本及项目搭建 springboot整合之版本号统一管理 springboot整合mybatis-plusdurid数据库连接池 springboot整合…

C++ 异常处理

目录 一、异常的定义 二、异常的抛出和捕获 1.throw 2.try...catch 3.异常安全 4.异常规范 三、系统预定义异常 四、用户自定义异常 一、异常的定义 异常在C用于错误处理,C语言中一般使用返回值表示错误,C对错误处理进行了扩展,统一使…

关于异常处理的知识整理

目录 1.什么是异常? 2.异常继承结构 3.异常结构继承图 4.关于异常处理的两种方式: 5.异常对象有两个非常重要的方法 1.什么是异常? 程序在执行过程中不正常的情况称为异常,以类和对象的形势存在,可以通过异常类&am…

异常处理---

异常 异常处理 例: public class Demo{public static void main(String[] args) {System.out.println("开始");method();System.out.println("结束");}public static void method(){int[] arr{1,2,3};System.out.println(arr[3]);//数组索引…

异常处理

1.相关概念的介绍 1)异常情形:是指阻止当前方法或作用域继续执行的问题。 2)监控区域:一段可能产生异常的代码,并且后面跟着处理这些异常的代码。 3)try块:如果在方法的内部或者在方法内部调…

异常及异常处理

一、异常的概念 定义: 异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误。 处理态度: 当捕获到异常以后一定要做出处理,哪怕是把这个异常的错误信息打印出来,这是一种良好的编程习惯。 …