监理公司管理系统 | 工程企业管理系统 | OA系统 | ERP系统 | 造价咨询管理系统 | 工程设计管理系统 | 甲方项目管理系统 | 签约案例 | 客户案例 | 在线试用
X 关闭
鹰潭网站建设公司

当前位置:工程项目OA系统 > 泛普各地 > 江西OA系统 > 鹰潭OA > 鹰潭网站建设公司

SQL到NOSQL的思维转变

申请免费试用、咨询电话:400-8352-114

鹰潭网站建设www.diyphp.net

1, 索引撑持。联系型数据库创建之初没有想到今日的互联网运用对可扩大性提出如此高的恳求,因而,描绘时首要思索的是简化用户的任务,SQL言语的发生促进数据库接口的标准化,然后构成了Oracle这样的数据库公司并带动了上下游产业链的开展。联系型数据库在单机存储引擎撑持索引,比方Mysql的Innodb存储引擎需求撑持索引,而NOSQL体系的单机存储引擎是朴实的,只需求撑持依据主键的随机读取和规模查询。NOSQL体系在体系层面供给对索引的撑持,比方有一个用户表,主键为user_id,每个用户有许多特色,包罗用户名,相片ID(photo_id),相片URL,在NOSQL体系中若是需求对photo_id树立索引,可以保护一张分布式表,表的主键为构成的二元组。联系型数据库由于需求在单机存储引擎层面撑持索引,大大降低了体系的可扩大性,使得单机存储引擎的描绘变得很杂乱。

  2, 业务并发处置。联系型数据库有一整套的关于业务并发处置的理论,比方锁的粒度是表级,页级仍是行级,多版别并发操控机制MVCC,业务的阻隔等级,死锁检测,回滚,等等。但是,互联网运用大多数的特色都是多读少些,比方读和写的份额是10 : 1,而且很少有杂乱业务需求,因而,一般可以选用更为简略的copy-on-write技能:单线程写,多线程读,写的时分履行copy-on-write,写不影响读效劳。NOSQL体系这样的假定简化了体系的描绘,减少了许多操作的overhead,进步了功能。

  3, 动态仍是静态的数据结构。联系型数据库的存储引擎总是一颗磁盘B+树,为了进步功能,可以需求有insert buffer聚合写,query cache缓存读,常常需求完成相似Linux page cache的缓存管理机制。数据库中的读和写是相互影响的,写操作也由于时不时需求将数据flush到磁盘而功能不高。简而言之,联系型数据库存储引擎的数据结构是通用的动态更新的B+树,但是,在NOSQL体系中,比方Bigtable中选用SSTable + MemTable的数据结构,数据先写入到内存的MemTable,到达必定巨细或许超越必定工夫才会dump到磁盘生成SSTable文件,SSTable是只读的。若是说联系型数据库存储引擎的数据结构是一颗动态的B+树,那么SSTable就是一个排好序的有序数组。很明显,完成一个有序数据比完成一个动态B+树且包罗杂乱的并发操控机制要简略高效地多。

  4, Join操作。联系型数据库需求在存储引擎层面撑持Join,而NOSQL体系一般依据运用来决议Join完成的方法。举个比方,有两张表:用户表和商品表,每个用户下可以有若干个商品,用户表的主键为,用户和商品的相关特色存放在用户表中,商品表的主键为item_id,商品特色包罗商品名,商品URL,等等。假定运用需求查询一个用户的一切商品并显现商品的详细信息,一般的做法是先从用户表查找指定用户的一切item_id,然后对每个item_id去商品表查询详细信息,即履行一次数据库Join操作,这必定带来了许多的磁盘随机读,而且由于Join带来的随机读的局部性欠好,缓存的作用往往也是有限的。在NOSQL体系中,咱们往往可以将用户表和商品表集成到一张宽表中,这样固然冗余存储了商品的详细信息,却换来了查询的高效。

  联系型数据库的功能瓶颈往往不在SQL句子解析上,而是在于需求撑持齐备的SQL特性。互联网公司面对的问题是运用对功能和可扩大性恳求很高,而且DBA和开发工程师水平比拟高,可以颠末献身一些接口友好性来交换更好的功能。NOSQL体系的一些描绘,比方颠末宽表完成Join操作,互联网公司的DBA和开发工程师也做过,NOSQL体系仅仅加强了这种束缚。从长远来看,可以总结一套束缚调集,而且界说一个SQL子集,只需求撑持这个SQL子集就可以在不献身可扩大性的前提下撑持比方90%以上的互联网运用。我想,NOSQL技能开展到这一步的时分就算是比拟成熟了,这也是咱们结尾想做的工作。咱们在描绘和运用NOSQL体系的时分也可以恰当转化一下思想,如下:

  1, 更大的数据量。许多人在运用Mysql的进程遇到记载条数超越必定值,比方2000W的时分,数据库功能开端下落,这个值的得出往往需求颠末许多的测验。但是,大多数的NOSQL体系可扩大性都比拟好,可以撑持更大的数据量,因而也可以选用一些空间换工夫的做法,比方颠末宽表的方法完成Join。

  2, 功能预估愈加简略。联系型数据库由于杂乱的并发操控,insert buffer及相似page cache的读写优化机制,功能预算相对较难,许多时分需求凭仗经历或许颠末测验才干得出体系的功能。然后,NOSQL体系由于存储引擎完成,并发操控机制等相对简略,可以颠末硬件的功能指标在体系描绘之处大致预估体系的功能,功能预估可操作性相对更强

 

发布:2007-03-31 14:59    编辑:泛普软件 · xiaona    [打印此页]    [关闭]
鹰潭OA
联系方式

成都公司:成都市成华区建设南路160号1层9号

重庆公司:重庆市江北区红旗河沟华创商务大厦18楼

咨询:400-8352-114

加微信,免费获取试用系统

QQ在线咨询

泛普鹰潭网站建设公司其他应用

鹰潭软件开发公司 鹰潭门禁系统 鹰潭物业管理软件 鹰潭仓库管理软件 鹰潭餐饮管理软件 鹰潭网站建设公司