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 正式宣布开源性能杠杠滴,请看测试结果~

3大主流NoSQL数据库性能对比测试报告

巨杉数据库SequoiaDB巨杉 Tech | SequoiaDB SQL实例高可用负载均衡实践

巨杉 Tech | SequoiaDB SQL实例高可用负载均衡实践

Mysql的JSON与SequoiaDB的比较

NoSQL数据库介绍