一种数据库水平伸缩方案,性能曾指数级提升

红薯 发布于 2018/05/16 22:08
阅读 2K+
收藏 1

本方案还处理论证阶段。

一般来讲,数据库的查询耗时会随着记录数的增加而增加,而索引的引入只不过是让这个耗时增加得不那么快而已。

但是 @宏哥 最近研究出一种全新的解决方案可以彻底的解决这个问题,他委托我对此技术进行发布和宣传。据说宏哥已经在其打造软件王国幻想的第一款软件中使用了该技术。

下面我简单的介绍一下宏哥全新的方案:

一般我们在做数据库的时候,表结构都是固定的,例如用户表,用户有什么属性信息基本都是确定的。当有新用户加入的时候就往表里插入一条记录。

@宏哥 说这种做法傻X透顶。他举了个例子说:就像以前没有分布式技术时代,想要提升系统性能就必须提升机器的配置,也就是所谓的“垂直伸缩”,但是配置的提升很快就到头了,升不上去了。然而现在是分布式时代了,我们提倡的是系统的水平伸缩能力。

所以宏哥的系统里,所有的表都只有一条记录,那么我怎么插入一条记录呢?请看下列的 SQL 语句你就能猜出个大概:

-- 假设要插入的用户 id 是 2438
ALTER TABLE users ADD user_2438 TEXT;
UPDATE users SET user_2438 = "{'name':'码云','domain':'gitee.com'}";

怎么样?非常简单对不对,而且性能极佳对不对?

那咱们再来看看查询:

SELECT user_2438 FROM users

那么简单的查询,而且表里只有一条记录,所以这个 SQL 语句执行时间相当于是 0ms。

删除用户怎么办呢?

ALTER TABLE users DROP user_2438; 

没错,本文用到的演示例子就是基于宏哥喜爱的 PG 数据库。

看到这里,我惊呆了。

真的,我以前一直觉得 @宏哥 挺傻逼的,没想到竟有如此创举,他完全可以获得计算机图灵奖。

深深的为宏哥的智商所折服,宏哥是开源中国 500 万会员的智商担当。

加载中
2
宏哥
宏哥

这个, 的确是我最近研究出来的新技术

1
郁白

额。。。。  不觉得厉害。。

Q1:我想查询username = "abc"的用户 怎么查?

Q2:mysql 单表的字段数没有限制吗?

Q3:  每次添加记录都得3条SQL  貌似很不友好。

Q4: 既然这样用的话 与直接用mongodb 有啥区别? 为什么不直接用mongodb呢。。。。

0
E
ETFOX
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
沧海一刀
沧海一刀

mark  ,  请教一下如果存储大量数据呢  ,如何证明高性能呢

0
Hello_Maybe
Hello_Maybe

做个测试没,数据量大于1亿条的时候查询结果怎么样,两年内能得到结果吗,2020年见

0
talent-tan
talent-tan
唉哟,早点遇到红薯,或者红薯早点想出这个馊主意就好了。
0
kakai
kakai
还以为一场计算机系统大变革到来了。 说正经的,说到分布式扩展系统瓶颈,据说qq服务端系统架构一直未曾变过
0
湖水没了
湖水没了
思维其他 持续思考创造 说不定能创造出什么了不得的东西
0
bisu3306
bisu3306
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
乌龟壳
乌龟壳

不把详细方案说清楚,我就当笑话看了

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部