首先nosql并不是No sql 而是Not Olny sql意即不是完全摒弃掉sql,而是不仅仅依赖关系型的数据库来存储。是一场反sql运动,是一场全新的数据库革命性运动。
它指的是非关系型的数据库。随着web2.0网站的兴起,传统的关系型数据库在应付web2.0网站,特别是超大规模和高并发的SNS和WeiBo类型的web2.0纯动态网站,已经显得力不从心,暴露了很多难以克服的问题。
而同时传统关系型数据库对事务处理这些优势已经慢慢没有发挥的余地,实际更需要的是一种能够快速读写,并且可以支持更复杂的数据结构的一种存储模式,所以Nosql应运而生。
这类数据库主要有以下特点:非关系型、分布式、开源、水平可扩展。
PHP用到的比较有代表性的有两个:memcached和redis。
Nosql的优点
1.可以处理超大量的数据,非常轻松
2.可以运行在便宜的PC服务器集群上,方便扩展。
3.击碎了性能瓶颈
NoSQ适用场景
1.对数据高并发读写。
对数据的高并发的处理Nosql有非常大的优势,对关系型的数据库来说上万次的读可能还能顶得住,但是如果要是上万次的写那么就会因为硬盘的I/O造成效率极其低下,而对Nosql来说这些都不是问题,因为Nosql的思想是把数据放到内存中,所以除了网络的I/O,硬盘几乎没有读写操作。
2.对海量数据的高效率存储和访问。
friendFeed一个月可以产生2.5亿的用户动态,2.5亿的数据对关系型数据库来说就非常吃力了,而对于Nosql来说处理起来非常轻松。
3.对数据的高扩展和高可用性。
对关系型数据库来说,如果要是遇到数据迁移或者增加服务器就会非常麻烦,而Nosql因为没有固定的表结构,而且本身就是分布式的,所以增加机器非常容易。
解释:
事务:比如小张在当当网购买一本书(50元),费用的流转可以分成两个过程如果买书成功那么首先从小张的账户减掉50元,然后这50元转到了卖家的账户。这整个的过程可以看成是一个事务。如果这两步都成功了,算是这个事务完成了,如果其中任何一步出了问题,那么整个过程就算失败,双方账户的钱都不会发生变化,也就是会退回到原来的状态。
原文链接:https://www.f2er.com/nosql/204301.html