SQL和NoSQL竟然在SequoiaDB中被打通了
Posted 小林coding
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL和NoSQL竟然在SequoiaDB中被打通了相关的知识,希望对你有一定的参考价值。
今天和在银行的同学聊天时,突然想了解下他们用的什么数据库产品。
这一问不打紧,竟然触及到我的知识盲区了 (:з」∠)
好家伙,第一次听说巨杉数据库,是我跟不上技术发展的潮流了吗?!
这可不行,必须让我看看sdb是何方神圣。
学习新技术,首要先上官网。在谷歌上输入「巨杉数据库」,第一条就是官网
点进去一探究竟,原来已经被好多公司应用了。
除了应用在金融行业之外,电信行业也有用到。不错不错,值得花时间探究一下
了解一门新事物,首先要有个直观的印象,先不急着深入原理
官网首页很贴心的有在线体验的入口,那就从这里开始吧~
进入学习中心后,看到了熟悉的在线编程界面。
这个东西很熟悉呀,不需要搭建环境,就可以直接上手感受数据库特性,对新手十分友好
看首页介绍,SDB是分布式数据库。相比起常见的关系型数据库,两者有什么不同呢?
带着这个疑问,我认真体验了一遍学习中心的课程。学习完后,终于对SDB的功能建立了初印象。
1. SDB VS mysql
考虑到Mysql开源易用,应用场景广泛。我捡起了两年前的mysql,看看SDB能否一较高下。
诶,好像发现了什么不得了的东西~
-
创建数据库
(SDB) CREATE TABLE employee( empno INT AUTO_INCREMENT PRIMARY KEY, ename VARCHAR(128), age INT ); (MySql) CREATE TABLE employee( empno INT AUTO_INCREMENT PRIMARY KEY, ename VARCHAR(128), age INT );
-
插入数据
(SDB) INSERT INTO employee (ename, age) VALUES ("Jacky", 36); (MySql) INSERT INTO employee (ename, age) VALUES ("Jacky", 36);
-
更新数据
(SDB) UPDATE employee SET ename = "Bob" WHERE empno = 1; (MySql) UPDATE employee SET ename = "Bob" WHERE empno = 1;
-
删除数据
(SDB) DELETE FROM employee WHERE empno = 2; (MySql) DELETE FROM employee WHERE empno = 2;
细心的小伙伴发现了吗?SDB和MySql在基础操作的语法是「完全一样」的。
事实上,SDB做到了100%兼容MySql语法!!!
这意味着,如果将MySql迁移到SDB后,无需任何学习成本,就可以在SDB上继续开发。
想想就很棒,不得不感叹SDB这方面做得十分厉害~
2. SDB VS MongoDB
最近公司内数据库全面转型,采用的是分布式数据库mongoDB。
出于工作中实际能用得到的心理,我又仔细查看了两者在基础使用上有何区别~
-
连接数据库
两者都是命令行操作,SDB是输入 sdb ,而mongoDB 直接输入mongo即可
(SDB) > SDB (MongoDB) > mongo
-
插入记录
插入操作基本相同,都是insert语句,后面使用json的语法
区别是:SDB 需指定db+table,而mongoDB需先通过 use db指定
(SDB) > db.company.employee.insert( { ename: "Abe", age: 20 } ); (MongoDB) > use company > db.employee.insert({ename:"Abe",age:20})
-
查找记录
查找操作基本一致,区别是SDB需要指定db.table
(SDB) > db.company.employee.find( { ename: "Abe" } ); (MongoDB) > use company > db.employee.find({ename:"Abe"})
-
修改记录
修改操作基本一致,都是update语句,且使用set更改
区别是 SDB需要指定db.table , 并且set在前面。而mongoDB的set在后面
(SDB) > db.company.employee.update( { $set: { ename: "Ben" } }, { ename: "Abe" } ); (MongoDB) > use company > db.employee.update({ename: "Abe" },{$set:{ename:"Ben"}} );
-
删除记录
删除操作基本一致,区别是SDB需要指定db.table
(SDB) > db.company.employee.remove( { ename: "Ben" } ); (MongoDB) > use company > db.employee.remove( { ename: "Ben" } )
可以看到,SDB和mongoDB都采用了Json语法。操作语句基本一致,略微有差别。
尽管是第一次接触SDB,但由于之前有mongoDB的使用经验,操作起来也十分得心应手~
3. 总结
回想下使用数据库的历程:在学校时,由于myql开源免费,所以用mysql比较多,积累也比较多。
工作后,由于企业环境下存在海量数据,mongoDB占据了数据库的舞台,所以又接触了新的技能~
现在得知到SDB既能兼容mysql的语法,又具备分布式存储的特点,集成了两家之长
真是技术爱好者的福音 (▽)
最后总结了下,三者在基础操作和应用场景上的对比,小伙伴们可以视情况选择哦
以上是关于SQL和NoSQL竟然在SequoiaDB中被打通了的主要内容,如果未能解决你的问题,请参考以下文章
文档型 NoSQL 数据库 SequoiaDB 正式宣布开源性能杠杠滴,请看测试结果~
巨杉数据库SequoiaDB巨杉 Tech | SequoiaDB SQL实例高可用负载均衡实践