国产 DB 将 SQL 和 NoSQL 融合在一起了!

今天和在银行的同学聊天时,突然想了解下他们用的什么数据库产品。

这一问不打紧,竟然触及到我的知识盲区了 (:з」∠)

好家伙,第一次听说巨杉数据库,是我跟不上技术发展的潮流了吗?!

这可不行,必须让我看看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);
    • 1

    • 2

    • 3

    • 4

    • 5

    • 6

    • 7

    • 8

    • 9

    • 10

    • 11

    • 12

    • 1

    • 2

    • 3

    • 4

    • 5

    • 6

    • 7

    • 8

    • 9

    • 10

    • 11

    • 12

  • 插入数据

    (SDB)INSERT INTO employee (ename, age) VALUES ('Jacky', 36); (MySql)INSERT INTO employee (ename, age) VALUES ('Jacky', 36);
    • 1

    • 2

    • 3

    • 4

    • 1

    • 2

    • 3

    • 4

  • 更新数据

    (SDB)UPDATE employee SET ename = 'Bob' WHERE empno = 1;(MySql)UPDATE employee SET ename = 'Bob' WHERE empno = 1;
    • 1

    • 2

    • 3

    • 4

    • 1

    • 2

    • 3

    • 4

  • 删除数据

    (SDB)DELETE FROM employee WHERE empno = 2;(MySql)DELETE FROM employee WHERE empno = 2;
    • 1

    • 2

    • 3

    • 4

    • 1

    • 2

    • 3

    • 4

细心的小伙伴发现了吗?SDB和MySql在基础操作的语法是「完全一样」的。

事实上,SDB做到了100%兼容MySql语法!!!

这意味着,如果将MySql迁移到SDB后,无需任何学习成本,就可以在SDB上继续开发。

想想就很棒,不得不感叹SDB这方面做得十分厉害~

2. SDB VS MongoDB

最近公司内数据库全面转型,采用的是分布式数据库mongoDB。

出于工作中实际能用得到的心理,我又仔细查看了两者在基础使用上有何区别~

  • 连接数据库

    两者都是命令行操作,SDB是输入 sdb ,而mongoDB 直接输入mongo即可

    (SDB)> SDB(MongoDB)> mongo
    • 1

    • 2

    • 3

    • 4

    • 1

    • 2

    • 3

    • 4

  • 插入记录

    插入操作基本相同,都是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})
    • 1

    • 2

    • 3

    • 4

    • 5

    • 1

    • 2

    • 3

    • 4

    • 5

  • 查找记录

    查找操作基本一致,区别是SDB需要指定db.table

    (SDB) > db.company.employee.find( { ename: 'Abe' } ); (MongoDB) > use company > db.employee.find({ename:'Abe'})
    • 1

    • 2

    • 3

    • 4

    • 5

    • 1

    • 2

    • 3

    • 4

    • 5

  • 修改记录

    修改操作基本一致,都是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'}} );
    • 1

    • 2

    • 3

    • 4

    • 5

    • 1

    • 2

    • 3

    • 4

    • 5

  • 删除记录

    删除操作基本一致,区别是SDB需要指定db.table

    (SDB) > db.company.employee.remove( { ename: 'Ben' } ); (MongoDB) > use company > db.employee.remove( { ename: 'Ben' } )
    • 1

    • 2

    • 3

    • 4

    • 5

    • 1

    • 2

    • 3

    • 4

    • 5

可以看到,SDB和mongoDB都采用了Json语法。操作语句基本一致,略微有差别。

尽管是第一次接触SDB,但由于之前有mongoDB的使用经验,操作起来也十分得心应手~

3. 总结

回想下使用数据库的历程:在学校时,由于myql开源免费,所以用mysql比较多,积累也比较多。

工作后,由于企业环境下存在海量数据,mongoDB占据了数据库的舞台,所以又接触了新的技能~

现在得知到SDB既能兼容mysql的语法,又具备分布式存储的特点,集成了两家之长

真是技术爱好者的福音 ()

最后总结了下,三者在基础操作和应用场景上的对比,小伙伴们可以视情况选择哦

(0)

相关推荐