国产 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的语法,又具备分布式存储的特点,集成了两家之长
真是技术爱好者的福音 (▽)
最后总结了下,三者在基础操作和应用场景上的对比,小伙伴们可以视情况选择哦