Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >目前主流的nosql数据库有哪些_显示器主流评测

目前主流的nosql数据库有哪些_显示器主流评测

作者头像
全栈程序员站长
发布于 2022-09-23 03:12:55
发布于 2022-09-23 03:12:55
8340
举报

大家好,又见面了,我是你们的朋友全栈君。

oSQL是伴随着web2.0的迅猛发展而在2009年被提出的一个概念,一般可以通俗的理解为高性能的Key Value存储结构的数据库,当然也有其他更广泛的类型。它基于CAP和BASE理论,强调最终一致性,具有数据结构灵活、扩展方便、大数据量下读写性能 高效等特点,在互联网行业被广泛采用。本系列文章将评测广受关注的几个NoSQL数据库产品。本文关注的是HandlerSocket Plugin for MySQL

系列文章主流NoSQL数据库评测之Tokyo Cabinet

HandlerSocket简介:

HandlerSocket是日本DeNA公司的架构师Yoshinori开发的一个NoSQL产品,以MySQL Plugin的形式运行。其主要的思路是在MySQL的体系架构中绕开SQL解析这层,使得应用程序直接和Innodb存储引擎交互,通过合并写入、协议 简单等手段提高了数据访问的性能,在CPU密集型的应用中这一优势尤其明显。

  另外,HandlerSocket还帮我们解决了缓存的问题,因为Innodb已经有了成熟的解决方案,通过参数可以配置用于缓存数据的内存大小,这样只要我们分配合理的参数,就能在应用程序无需干涉的情况下实现热点数据的缓存,降低缓存维护的开发成本。

   因为HandlerSocket是MySQL的一个Plugin,集成在mysqld进程中,对于NoSQL无法实现的复杂查询等操作,仍然可以使用 MySQL自身的关系型数据库功能来实现。在运维层面,原来广泛使用的MySQL主从复制等经验可以继续发挥作用,相比其他或多或少存在一些bug的 NoSQL产品,数据安全性更有保障。

  可以说这是一个很有创意的产品,因此HandlerSocket的作者在2010年10月在博客 上宣称这一产品能达到75K QPS的时候,在业界引起了广泛的关注,包括MySQL官方在新的5.6版本中推出的Memcached API,相信也是受了HandlerSocket的启发。

测试说明:

一、测试环境

  Handlersocket部署在一台PC 服务器上,配置如下:

CPU为Xeon 2.80GHz *4

内存为4G

硬盘为一块400G SATA盘

操作系统为64位CentOS 5.3版本

二、测试方法

  Handlersocket的客户端几乎涵盖了各种语言,都实现了通过以上两个端口对数据读写的操作,其中查询操作必须通过建立有索引的列来进行。

  考虑到NoSQL在互联网行业应用较为广泛,采用PHP实现客户端程序的做法,通过一定的并发去读写数据,观测每秒读写的记录数作为主要的衡量指标。当然也可以利用Java的多线程进行并发测试,但由于篇幅和时间所限,本文不再涉及此方面的内容。

  这里采用第三方实现的一个PHP客户端,网址为http://code.google.com/p/php-handlersocket/,可以编译到PHP运行环境中。

  为了不对测试服务器产生额外的影响,测试客户端部署在另外一台独立的服务器上,运行的PHP的版本是5.3.5,web server是Nginx 0.8.54,通过fastcgi的方式调用PHP服务。使用apache ab工具实现多个请求和并发操作。

   测试分为两个步骤,首先是写操作,通过500个请求,每个请求写入10000条记录,并发度为2来共写入500万条数据,数据的key为数字1到 5000000,value大小为100个字节。然后是读操作,也是用500个请求,每个请求随机根据key值读出10000条记录,并发度为10共读出 500万条记录,评测的重点是写入和读出数据的时间,以及在此过程中服务器的资源使用情况。

MySQL 数据库安装:

一、安装MySQL

  通过编译源码的方式安装MySQL,这里选择的版本是5.5.8版本。由于这不是本文的重点,这里只简单的提及一下要点。

  首先到MySQL的官网http://dev.mysql.com/downloads/mysql/下载源码,要注意的是从MySQL 5.5版本开始需要Cmake编译工具和bison。然后开始安装:

  安装完成后配置my.cnf文件,最重要的参数是分配给innodb存储引擎的内存大小,也就是innodb_buffer_pool_size参数,这里设置为2G。

  [root@localhost mysql558]# vi my.cnf

  ……

  innodb_buffer_pool_size = 2G

  ……

二、安装HandlerSocket

  首先到以下地址下载代码:

https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL

  开始安装HandlerSocket:

  [root@localhost handlersocket]# tar – zxvf ahiguti – HandlerSocket – Plugin – for – MySQL – 1.0 . 6 – 67 – g25f4957.tar.gz

  [root@localhost handlersocket]# cd handlersocket /

  [root@localhost handlersocket]# . / autogen.sh

  [root@localhost handlersocket]# . / configure — with – mysql – source =/ home / handlersocket / mysql – 5.5 . 8 — with – mysql – bindir =/ home / handlersocket / mysql558 / bin — with – mysql – plugindir =/ home / handlersocket / mysql558 / lib / plugin

  [root@localhost handlersocket]# make

  [root@localhost handlersocket]# make install

三、修改MySQL配置

  在my.cnf配置文件增加以下内容:

  [root@localhost mysql558]# vi my.cnf

  [mysqld]

  ……

  loose_handlersocket_port = 9998

  # the port number to bind to ( for read requests)

  loose_handlersocket_port_wr =9999

  # the port number to bind to (for write requests)

  loose_handlersocket_threads =16

  # the number of worker threads (for read requests)

 loose_handlersocket_threads_wr = 16

  # the number of worker threads ( for write requests)

  open_files_limit = 65535

  # to allow handlersocket accept many concurrent connections

  #make open_files_limit as large as possible.

  这里增加的这些主要是针对handlersocket的配置,它有2个端口,9998用来读数据,9999读写均可,但是通过9998来读的效率更高。这里我们设置处理读写的线程数均为16个,另外为了处理更多的并发连接,设置能打开的文件描述符个数为65535。

四、安装MySQL授权表并启动数据库

  [root@localhost mysql558]# scripts / mysql_install_db — user = mysql

  [root@localhost mysql558]# bin / mysqld_safe — user = mysql &

五、登录MySQL安装HandlerSocket Plugin:

  [root@localhost mysql558]# bin / mysql – u root – p

  mysql > install plugin handlersocket soname ‘ handlersocket.so’;   Query OK, 0 rows affected ( 0.01 sec)

  通过以下命令查看也可见handlersocket已经成功安装到MySQL中:

  mysql > show processlist;

  mysql > show plugins;

测试结果:

一、写操作

  成功写入500万条记录,共耗时4300秒,平均每秒写入数据1163笔。

   写入过程中,服务器比较稳定,CPU使用率平稳,Idle值稳定在70到72之间,等待时间稳定在14到19之间。内存分配上的变化较大,free部分 从1.3G下降到25M,buffer部分从630M下降到65M,cache部分从1.5G上升到2.9G,虚拟内存从0上升到376K,但是没有交换 区到内存的换入换出。磁盘IO表现平稳,每秒写入的块数稳定在10000到12000之间。

二、读操作

  成功读出500万条记录,共耗时193秒,平均每秒读出数据25906笔。

  读数据过程中没有发生磁盘IO。CPU较繁忙,Idle在39到51之间,等待CPU资源的进程一直在1到6个之间。内存表现平稳没有波动。

  通过以上测试结果可以说明,写入的数据完全缓存到了文件系统中,所以cache部分占用的内存大量增加,这也是读取数据的时候没有发生磁盘IO的原因。

总结:

要说明的是,虽然这是一份真实的测试数据,但是并不一定具有普遍意义。因为应用场景是千差万别的,服务器的资源配置、数据记录的多少、单条数据的大小、读 写的比例、客户端程序的质量等因素都会影响测试结果,甚至差别会非常大,对我们来说,更重要的是了解这个NoSQL产品的特性,知道它的适用场景,并且能 够根据自己实际的应用场景针对性的进行测试,这样才能做到针对性的选型,只有最适合自己需求的产品才是最好的产品。

转载于:https://www.cnblogs.com/zhishan/archive/2013/04/25/3041697.html

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172630.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
handlersocket mysql,MySQL插件HandlerSocket
HandlerSocket 是MySQL的一个插件,用来实现 NoSQL 功能,用于跳过MySQL的SQL层面,直接访问内部的InnoDB存储引擎。
全栈程序员站长
2022/09/23
4730
mysql handlersocket_HandlerSocket介绍[通俗易懂]
MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃MySQL而采用NoSQL产品,比如Redis/MongoDB等。不可否认,在做一些简单查询(尤其是PK查询)的时候,很多NoSQL产品比MySQL要快很多,而且前台网站上的80%以上查询都是简洁的查询业务。
全栈程序员站长
2022/09/23
3900
mysql handlersocket_HandlerSocket介绍[通俗易懂]
简述handler机制及其作用_传统金融的优势与缺点
HandlerSocket目前支持索引查询(主键索引和非主键的普通索引均可),索引范围扫描,LIMIT子句,也即支持增加、删除、修改、查询完整功能,但还不支持无法使用任何索引的操作。另外支持execute_multi() 一次网络传输多个Query请求,节省网络传输时间。
全栈程序员站长
2022/09/23
3340
HandlerSocket的安装实例及性能测试[通俗易懂]
Hanldersocket是一个MySQL守护进程插件,它让应用程序可以将MySQL当NoSQL使,Hanldersocket的主要目的是与存储引擎,如InnoDB交互,而不需要SQL相关的开销。访问MySQL表时,Hanldersocket仍然需要打开和关闭表,但不是每次访问都要求打开和关闭,因此减少了互斥争夺,极大地提高了系统性能,当流量变小时,Hanldersocket会关闭表,因此它永远不会阻止管理命令(DDL)。
全栈程序员站长
2022/09/23
1.2K0
HandlerSocket的安装实例及性能测试[通俗易懂]
HandlerSocket简介及安装及卸载
HandlerSocket是日本人akira higuchi 写的一个MySql的插件。通过这个插件,你可以直接跟MySQL后端的存储引擎做key-value式的交互,省去了MySQL上层的SQL解释、打开关闭表、创建查询计划等CPU开销。按照作者给出的数据可以在数据全部在内存的情况下可以达到75W的QPS查询。总之,它对mysql数据库的操作比mysql本身的操作语句快很多。
全栈程序员站长
2022/09/23
3080
【centos安装mysql数据库】详细版
https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
samRsa
2025/02/10
2860
【centos安装mysql数据库】详细版
下一站:HandlerSocket!
目前使用MySQL的网站,多半同时使用Memcache作为键值缓存。虽然这样的架构极其流行,有众多的案例,但过于依赖Memcache,无形中让Memcache成为故障的根源:
LA0WAN9
2021/12/14
2950
java websocket框架_websocket监听数据库
HandlerSocket是针对Mysql的一个NoSQL插件,它作为一个守护进程工作在mysqld进程里面,接收tcp连接,并处理来自客户端的请求。HandlerSocket不支持SQL查询,作为替代,它支持表的简单的CRUD操作。
全栈程序员站长
2022/09/28
1.6K0
handlersocket php,handlersocket安装配置
下载地址 :https://nodeload.github.com/ahiguti/HandlerSocket-Plugin-for-MySQL/tarball/master
全栈程序员站长
2022/09/23
4650
Percona Toolkit 神器全攻略(配置类)
pt-config-diff 概要 比较 MySQL/GreatSQL 配置文件和服务器变量 用法
GreatSQL社区
2024/06/21
1540
Percona Toolkit 神器全攻略(配置类)
Java websocket_docker rocketmq
HandlerSocket是MySQL的一个Plugin,通过它可以直接跟MySQL的Storage Engine Layer(比如InnoDB)交互,而不需要通过MySQL的Parser Layer。从性能角度有很大的提升。
全栈程序员站长
2022/09/23
3400
Java websocket_docker rocketmq
Linux系统下 MySQL 5.7和8.0 版本安装指南
yum -y remove mariadb-libs-5.5.44-2.el7.centos.x86_64
星哥玩云
2022/08/17
1K0
Linux系统下 MySQL 5.7和8.0 版本安装指南
10个MySQL性能调优的方法
MYSQL 应该是最流行了 WEB 后端数据库。WEB 开发语言最近发展很快,PHP, Ruby, Python, Java 各有特点,虽然 NOSQL 最近越來越多的被提到,但是相信大部分架构师还是会选择 MYSQL 来做数据存储。
黄啊码
2020/05/29
7400
宝塔数据库无法启动解决办法
在ssh输入:wget -O sql-repair.sh http://download.bt.cn/install/sql-repair.sh && sh sql-repair.sh
Power
2023/07/20
5310
高性能网站架构方案(一) ——MySQL提升
高性能网站架构方案(一)——MySQL提升 原创内容,转载请注明来源,谢谢) 一、Mysql响应速度提升——HandlerSocket 1、概述 HandlerSocket作为Mysql的插件运行,在Mysql体系架构中绕开了SQL解析,让程序直接和InnoDB引擎进行交互。并且其可以通过合并写入、简单协议等手段,提高数据访问性能,在CPU密集型应用中优势明显。 HandlerSocket可以理解为MySql的NoSql插件,其所谓的CPU密集型优势指的是,对于处理复
用户1327360
2018/03/07
1.2K0
高性能网站架构方案(一) ——MySQL提升
MySQL 5.7安装最佳实践
1、环境准备 OS: CentOS Linux release 7.4.1708 (Core) for VMware MySQL: mysql-5.7.24-linux-glibc2.12-x86_64
星哥玩云
2022/08/18
6120
Nosql数据库服务之redis
是一种非关系型数据库服务,它能解决常规数据库的并发能力,比如传统的数据库的IO与性能的瓶颈,同样它是关系型数据库的一个补充,有着比较好的高效率与高性能。
民工哥
2020/09/16
4480
Nosql数据库服务之redis
数据库性能评测:整体性能对比
导语 随着版本升级,关系型数据库和缓存数据库整体性能比之前都有大幅度的提升,衡量数据库性能的三个重要指标是:数据库吞吐量(QPS)、延迟时长(Latency)和稳定性,以下从这三个方面对几种数据库进行
李俊飞
2017/07/04
23.2K2
数据库性能评测:整体性能对比
数据库介绍(MySQL安装 体系结构、基本管理)
该文章介绍了如何通过MySQL Workbench 5.7.31在Windows 10上重置MySQL root密码。包括安装MySQL Workbench、运行MySQL命令行工具、查看MySQL服务器信息、通过命令行重置MySQL root密码、重载MySQL服务、登录MySQL数据库等步骤。
惨绿少年
2017/12/27
3K0
数据库介绍(MySQL安装 体系结构、基本管理)
青铜到王者,看看你的MySQL数据库是什么段位,如何提升?
作者 | 张甦, 数据库领域的专家和知名人士、图书《MySQL王者晋级之路》作者,51CTO 专家博主。近10年互联网线上处理及培训经验,专注于 MySQL 数据库,对 MongoDB、Redis 等 NoSQL 数据库以及 Hadoop 生态圈相关技术有深入研究,具备非常丰富的理论与实战经验。
数据和云
2018/07/27
1.1K0
青铜到王者,看看你的MySQL数据库是什么段位,如何提升?
相关推荐
handlersocket mysql,MySQL插件HandlerSocket
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档