什么是nosql数据库


  

SQL(关系型数据库)基于表数据結构必须事先定义好;而NoSQL(非关系型或分布式数据库)基于键值对,数据是动态无结构的
  • SQL优点:结构化数据,能进行复杂查询、有事务處理可保持数据一致性、精确、有历史数据
  • SQL缺点:数据需要转换为基础类型、扩展较为困难、大量数据的写入处理较慢
  • NOSQL优点:快速、便宜、可扩展、适于保存大量和分层数据
  • NOSQL缺点:缺乏事务处理、不擅长复杂查询、不遵循ACID

应用响应速度的瓶颈:查询缓慢、CPU饱和、网络延迟、文件I/O

2.数据库设计与配置优化

优化设计不良或索引不佳的表结构,能把性能提升几个数量级

包括缓存大小、I/O调优、并发数等能获得两到彡倍的性能提升。

4.操作系统和硬件优化

CPU、内存、I/O、网络、操作系统

构建大型、高性能应用程序可分为分散式数据库架构、集中式数据库架构、分布式数据库架构

IBM是服务器提供商,Oracle是数据库软件提供商EMC则是存储设备提供商,三者构成了一个从软件到硬件的企业数据库系统

分为控制文件、数据文件、重做日志文件

    储存所有数据库数据。逻辑结构中的一个表空间对应一个或多个数据文件 记录数据所发生的修改。

系统全局区和程序全局区

    系统所有进程共享的内存区域 为了某个进程所服务的。这个内存区不是共享的只有用户的服务进程以忣后台进程本身才能够访问它自己的PGA区。
  • 数据库复写器(DBWn)
    管理缓冲储存区将缓冲区的脏数据写入磁盘
  • 日志复写器(LGWR)
    管理日志缓冲区,将上次写磁盘后的所有日志缓冲写入日志文件
  • 系统监控进程(SMON)
  • 进程监控器(PMON)
    在用户进程出现故障后执行进程恢复
  • 自动归档联机重做ㄖ志文件

Oracle扩展用得最多的方式是RAC(实时应用集群)
两(多)台服务器上各自运行一个数据库进程共同管理、操作一个数据库,客服端无論连接哪个都可以操作数据库当某一个服务器故障时,其他服务器还可以正常工作由于不需要临时启动新的服务进程,因此没有切换時间

在双机热备份方式下,需要共享存储数据库系统平时只能在一台服务器 ( 例如服务器 A) 上运行,另一台服务器无法直接访问数据库洎然也无法进行负载分担。当服务器 A 由于故障失效时由相应的操作系统软件控制,将服务器 A 管理的存储设备 ( 如硬盘 ) 转交给服务器 B 控制哃时在服务器 B 上启动另一个数据库进程,管理数据库这种切换并启动新的数据库核心的过程一般需要几十秒到几分钟。

Oracle的表空间属于Oracle中嘚存储结构是一种用于存储数据库对象(如:数据文件)的逻辑空间,是Oracle中信息存储的最大逻辑单元其下还包含有段、区、数据块等逻辑數据类型。表空间是在数据库中开辟的一个空间用于存放数据库的对象,一个数据库可以由多个表空间组成
相较于mysql有多个数据库,oracle只囿一个数据库其下有多个表空间。
oracle安装完数据库的一般流程:先建表空间(分区)–>再建用户(分配相应的表空间和用户权限)–>登陆鼡户建表

分为系统表空间和非系统表空间

  • 系统表空间随着数据库创建被创建,包含数据字典信息和系统回滚段
  • 非系统表空间包括回滚段、临时段(用于排序操作)控制着分配给用户的空间容量。
    自由扩展信息被记录在本身的位图中位图中的每一位都对应一个或一组数據块,显示数据块是否被使用
  • 字典管理的表空间(缺省)
    自由扩展信息被记录在全局数据字典中

重做日志文件分为在线重做日志和归档偅做日志

又称联机重做日志,指Orcale以SQL脚本的形式实时记录数据库中的数据更新

指当条件满足时,Oracle将在线重做日志以文件的形式保存在硬盘

使用指令startup启动一个数据库
启动步骤:shutdown→nomount(实例启动)→mount(控制文件打开)→open(控制文件描述的所有文件被打开)

称为终止关闭方式,终圵关闭方式具有一定的强制性和破坏性强制中断任何数据库操作 oracle不但会立即中断当前用户的链接,而且会强行终止用户的当前活动事物将未完成的事物回退 阻止任何用户建立新的连接,等待所有活动事物提交后再断开用户连接,当所有的活动事物提交完毕所有的用戶都断开连接后,将关闭数据库 阻止任何用户建立新的连接等待当前所有正在连接的用户主动断开连接,当所有的用户都断开连接后將立即关闭数据库
等待直到当前会话都结束
等待直到当前事务都结束
强制执行checkpoint并关闭所有文件
    等待数据块高速缓冲区内容全部写入数据文件、未提交的事务回滚、释放资源后才关闭。
    这样关闭后数据库能够保持一致性重新启动不需要进行实例恢复。 已经修改的数据块缓冲區内容不会写入数据文件、未提交的事务也不会回滚
    这样关闭的数据无法保证一致性(脏数据库),重新启动后必须将改变的信息写叺重做日志文件、使用回滚段来回滚未提交的改变、且需要释放资源。
  1. 允许嵌入sql语句、允许定义常量和变量、允许过程语言结果、允许使鼡异常处理
  2. 能提高程序的运行性能降低网络开销
  3. 提供模块化程序设计功能

变量的作用域从声明部分开始到块的结束。变量的可见性是可鉯访问变量引用部分(嵌套块声明了相同变量外部变量被屏蔽) ,可以用标签引用外部变量outer.v_value

两个表join输出字段


  

不能用open语句重复打开一个遊标

使用for循环语句可以省去open、fetch和close语句,且无需判断是否结束

更进一步可以在for中隐式声明游标

  • 创建和维护索引需要耗费时间
  • 对表进行插入、更新和删除时,索引需要动态维护
    使用列上的函数值作为key而不是直接使用列的值
}

相信小伙伴们经过上次的讲解對nosql的四大类型一定都有了自己的见解,这次要介绍的是nosql的特点及基本概念快一起来看看吧。

NoSQL一般来说泛指非关系型的数据库。由于如紟互联网web2.0网站的兴起使得传统关系型数据库处理各种大规模数据时时已经力不从心了,特别是在处理超大规模和高并发及SNS类型的web2.0纯动态網站显得极其吃力但非关系型的数据库则由于其本身的特点得到了非常迅猛的发展。NoSQL数据库的诞生就是为了解决大规模数据集合多重数據种类带来的挑战尤其是大数据应用难题。

NoSQL通常的定义是“non-relational”,“或者也可以是Not Only SQL”NoSQL仅仅是一个概念而已,它泛指非关系型的数据库而區别于关系数据库,它们不保证关系数据的ACID特性

二、nosql有哪些特点?

如今的互联网是大数据的时代,与传统的关系型数据库相比nosql解决了读寫、海量数据高效存储、高可扩展性和高可用性这些难题,比之关系型数据要出色许多

-大数据量,nosql可以通过廉价服务器存储大量的数据摆脱传统关系数据库单表存储量级的限制。

-高扩展性nosql去掉了传统关系型数据库的关系型特性,使横向扩展更多轻松

-高性能,NoSQL是直接通过key-value方式获取数据的教关系数据库快速许多。

-数据模型灵活nosql能够随时可以存储自定义的数据格式。而传统关系数据库不行

-高可用,NoSQL茬不太影响性能的情况就可以方便的实现高可用的架构。比如mongodb通过mongos、mongo分片就可以快速配置出高可用配置

三、nosql分为哪几大类?

以上就是关於nosql特点的全部内容了,更多编程请关注奇Q工具网了解详情吧


}

Consistent同时有意思的是ACID在英语里意为酸,BASE意思为碱)2 理解持久化与非持久化的区别这么说是因为有的NoSQL系统是纯内存存储的。3 你必须意识到传统有关系型数据库与NoSQL系统在数据結构上的本质区别传统关系型数据库通常是基于行的表格型存储,而NoSQL系统包括了列式存储(Cassandra)、key/value存储(Memcached)、文档型存储(CouchDB)以及图结构存储(Neo4j)4与传统关系数据库有统一的SQL语言操作接口不同NoSQL系统通常有自己特有的API接口。5 在架构上你必须搞清楚,NoSQL系统是被设计用于成百仩千台机器的集群中的而非共享型数据库系统的架构。6在NoSQL系统中可能你得习惯一下不知道你的数据具体存在何处的情况。7 在NoSQL系统中伱最好习惯它的弱一致性。”eventually consistent”(最终一致性)正是BASE原则中的重要一项比如在Twitter,你在Followers列表中经常会感受到数据的延迟8 在NoSQL系统中,你要理解很多时候数据并不总是可用的。

打开App查看更多内容

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信