今天早上看到了一篇文章《Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server》。主要讲述的是把Mysql作为一个KVS和Memcache的一个对比。看到了一个新的思路。
开始的结果大概是Mysql的性能是Memcache的1/4,QPS是10w:42的样子。使用Mysql主要的消耗在解析SQL以及一些内部的同步处理。
然后提到了NDBAPI,这个能够大幅提高性能,但是需要用在NDB上--不过很多公司是不用NDB的。
最后提到了一个解决方案,是在Mysql Server上部署一个插件一样的东东,监听另外一个端口,走另外的协议。而这个插件内部,是直接不走MysqlServer的SQL解析等等过程的,直接走Storage Engine的API,也就是innodb的API。性能得到非常大的提升。
通过这个改造,QPS从10w达到了70w,已经超过memcache将近3/4。
文章具体地址是http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-as-nosql-story-for.html,已经实现的代码,在文章中有下载链接。
分享到:
相关推荐
### MySQL 复制 + Atlas + MHA 部署步骤详解 #### 一、环境部署概述 本篇文章将详细介绍如何部署一个集成了 MySQL 复制、Atlas 与 MHA(Master High Availability)的高可用环境。这样的组合可以有效提高系统的...
Techu 是一个基于 RESTful 的搜索服务器,基于 Sphinx 全文搜索引擎。 特点: 通过 Techu 数据库模型组织 Sphinx 配置 ... Redis in-memory key-value storage MySQL 标签:Techu
Practical instruction on using JavaScript Object Notation (JSON) with MySQL This hands-on guide teaches, step by step, how to use JavaScript Object Notation (JSON) with MySQL. Written by a MySQL ...
字段操作包括非空约束(NOT NULL)、默认值(DEFAULT default_value)、唯一约束(UNIQUE)、主键约束(PRIMARY KEY)、自动增长(AUTO_INCREMENT)、外键约束(FOREIGN KEY)等。设置这些约束可保证数据的完整性和...
- Sina 的 SAE 平台上,有 KVDB 作为分布式键值存储服务,以及 Storage 作为分布式文件存储服务,用于存储大量持久化的文件。 2. 应用场景分析 - 数据量巨大,但单个记录通常较小,主要体现在记录数量多。 - 高...
data = {'key': 'value'} storage.save('my_data', data) retrieved_data = storage.load('my_data') ``` 以上是对“lztools.storage-1.0.2-py2.py3-none-any.whl”这个Python库的基本介绍和可能功能的推测。由于...
### MySQL数据库的基本操作知识点 #### 一、数据库表基本操作 **1. 创建数据表** 在MySQL中,创建数据表是构建数据库应用的基础步骤之一。使用`CREATE TABLE`语句来定义新表及其结构。 ```sql CREATE TABLE ...
Table of Contents Preface, Notes, Licenses . . . . . . . . ....1. Licenses for Third-Party Components ....1.1. FindGTest.cmake License ....1.2. LPeg Library License ....1.3. LuaFileSystem Library License ....
- **阿里云 OSS (Object Storage Service)**:作为一项云存储服务,OSS 提供了丰富的 API 接口,使得开发者能够轻松地将数据存储到云端,并从中检索数据。 #### 三、如何开发一个 Web Service 本部分将详细介绍...
directive because it is not set or is mistyped, a default value will be used. ; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one ; of the INI constants (On, Off, True, ...
### MySQL 学习知识点梳理 #### 一、基础操作 1. **切换数据库:** - 命令格式:`USE ;` - 示例:`USE xuweifei;` —— 此命令用于切换当前使用的数据库到名为 `xuweifei` 的数据库。 2. **查看当前数据库中的...
在命令行启动时,你可以通过`--option=value`的形式添加启动参数,例如设置默认存储引擎为MyISAM的命令`mysqld --default-storage-engine=MyISAM`。但需要注意的是,错误的写法如在等号两侧留有空格会导致解析错误。...
3. **存储引擎层 (Storage Engine Layer)**:LSQL提供了多种存储引擎,包括全文检索引擎、Key-Value Engine、OLAP Engine和预计算引擎,以适应不同的数据处理需求。其中,全文检索引擎用于高效搜索,Key-Value ...
为了使用 NFS 作为持久存储,首先需要创建一个基于 NFS 的 StorageClass,并安装 NFS provisioner。 **4.3 常用命令** - `kubectl apply -f <statefulset-file>.yaml`: 应用 StatefulSet 配置。 - `kubectl get ...
TiDB(分布式NewSQL数据库)和TiKV(分布式Key-Value存储引擎)共同构建了一个强一致性的、水平可扩展的、分布式事务处理平台。在本篇文章中,我们将深入探讨这两个项目的源码,了解其内部机制。 1. **TiDB简介** ...
3. **存储引擎层(Storage Engine Layer)**:这一层包含多个子引擎,如全文检索引擎、Key-Value Engine、OLAP Engine和预计算引擎,它们分别针对不同的数据处理需求进行优化。例如,全文检索引擎用于高效地进行文本...
- **Key-Value**:如Redis、RocksDB。 - **Column**:如HBase。 - **Document**:如CouchDB、MongoDB。 - **Graph**:如Neo4j、TitanDB。 #### 1.2 图数据库特性 文档中提到的HugeGraph是一种图数据库,主要特点是...
storage['key'] = 'value' # 检索数据 data = storage['key'] print(data) # 输出:'value' ``` 以上就是关于"shove"库的基本介绍和使用方法。这个库为Python开发者提供了一种灵活的方式来管理他们的数据存储,无论...