5.安全操作与捕获异常以及请求和连接题稿.ppt

5.安全操作与捕获异常以及请求和连接题稿.ppt

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
胡国青 2016/03/07 * 议题 瞬间完成 安全操作 捕获“常规”错误 请求和连接 * 瞬间完成 增、删、改操作都是瞬间完成的,因为它们不需要数据库的响应,可以把它想象成客户端发出请求后就不用操心的操作。我们一般称之为“离玄之箭”方式。 优点很明显:执行效率高,它只会受客户端网络速度制约,一般情况下会工作的很好,但有时也会出意外,比如: 服务器奔溃了,网线有问题了,数据中心短路了。。。 对于有些应用如用户点击量或分析型数据采样,丢失几秒的数据无关紧要,但对于购物付费类的,就不好玩了。 安全操作 mongoDB 开发者采用不安全模式作为默认选择,这是由于他们与关系型数据库打交道的经验所致的,很多构建在关系型数据库的应用,都不关心返回的代码,也不会处理这个返回码,但又得苦苦等待这个返回码,这会造成性能极大的下降。mongoDB可以让用户来选择采用何种方式。 采用安全方式还是采用“离玄之箭”方式,可以结合采用;比如用户访问页面,包括页面的访问量这些可以采用不安全模式,即“离玄之箭”方式,而对于用户的账户和用户发送一个购物的请求,比如我们买些东西,要付款,包括订单要下放,订单确认,要采用安全模式。 安全操作 安全操作是在执行完操作后立即执行getLastError命令,来检查是否成功执行。然后适当的处理数据库返回的错误,一般情况下数据库会抛出一个可捕获的错误,我们可以采用自己的开发语言来捕获和处理。如果执行成功,getLastError会给出额外的信息作为响应(比如:更新或删除操作给出的更新数)。 捕获“常规”错误 安全操作也是一种调试数据库“奇怪”行为的好方法,建议开发过程大量使用,这样可以避免常规的使用数据库错误,例如:“_id”值重复,mongoDB中不允许在一个集合中出现重复“_id”值得文档。 {_id:”s001”,name:”paris”} 和 {_id:”s001”,name:”chicgo”} 请求和连接 数据库会为每个mongoDB连接创建一个独立的队列(什么是队列,比如我们在火车站买票,我们去排队,那么这个对就属于队列。),来存放连接的请求,当客户端发送请求,会被存放到该连接队列的末尾,当队列的请求都执行完毕后,才会执行后续的请求(请求是一个个的被执行的)。对于实际应用的交错插入、查询,会产生秒级的延迟[对于实际应用我们采用并发操作,比如一个队列进行插入请求,而另一个队列进行查询请求,当这两个请求同时产生的时候,会产生秒级的延迟;手工模仿不一定能模仿出来;当一个独立队列进行了插入请求以后,再执行查询请求,就是说这两个请求是在同一个队列中请求的,那么前面插入的数据肯定会被查询出来的,因为这是在同一个连接的两个请求(有先后顺序)]。 返回已更新文档 findAndModify findAndModify 注意点: update 与remove 必须而且只能存在一个。 它一次只能操作一个文档,不能进行upsert操作,只能更新已存在的文档。 findAndModify 执行效率有点低,话虽这么说,不代表避免使用,mongo每一个函数的存在,都有其实际存在的价值。它的执行效率相当于 一次查询、更新外加getLastError 顺序执行的时间。 提问 感谢观看! * * *

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档