python 数据库

关系型数据库:SQLite、Oracle、mysql(面向行)

非关系型数据库:MongoDb(面向文档)、redis(键值对)、HBase(面向列)

数据库类型

特性

优点

缺点

关系型数据库:

SQLite、Oracle、mysql

1.采用关系模型来

搭建的

2.具有事务的一致性

1. 容易理解:关系

模型更贴近逻辑

世界

2. 使用方便:有通用

的SQL语句

3.易于维护

1.读写性能差

2.固定的表结构

3.高并发读写需求

非关系型数据库(NoSQL):

MongoDb、redis、HBase

1.使用键值对存储数据

2.分布式

3.一般不支持ACID特性

1.无需经过sql语句

的解析,读写性能

很高

2.基于键值对,数据

没有耦合性

1.不支持通用的sql

语句,学习和使用

成本较高

2.无事务处理

 

Redis属于这种类型。Redis有些特殊,临时性和永久性兼具。Redis首先把数据保存在内存中,在满足特定条件(默认是 15分钟一次以上,5分钟内10个以上,1分钟内10000个以上的键发生变更)的时候将数据写入到硬盘中,这样既确保了内存中数据的处理速度,又可以通过写入硬盘来保证数据的永久性,这种类型的数据库特别适合处理数组类型的数据。总结来说:

       。同时在内存和硬盘上保存数据

       。可以进行非常快速的保存和读取处理

       。保存在硬盘上的数据不会消失(可以恢复)

       。适合于处理数组类型的数据

 

面向文档的数据库

   MongoDB、CouchDB属于这种类型,它们属于NoSQL数据库,但与键值存储相异。

   (1)不定义表结构

     即使不定义表结构,也可以像定义了表结构一样使用,还省去了变更表结构的麻烦。

   (2)可以使用复杂的查询条件 

     跟键值存储不同的是,面向文档的数据库可以通过复杂的查询条件来获取数据,虽然不具备事务处理和Join这些关系型数据库所具有的处理能力,但初次以外的其他处理基本上都能实现

 

MySQL:

视图:1. 一个复杂的sql语句可以使用视图替换,代理

2. 数据库表结构更换了,我们可以不用更换python代码

事务:保持数据修改的完整性

原子性:意思就是事务中一系列的sql语句操作要保持完整性,不能只执行一半

一致性:就是在没有提交事务前,对数据的所有操作,真实的数据库都不会发生变化,只有提交了事务才会数据更改

隔离性:就是在没有完成本次事务前,不允许其他用户对数据的操作

持久性:就是在提交了事务后,就永久的写到数据库中了

索引:当数据非常庞大时,并且这些数据不是经常修改,为了加快查询速度,我们会使用索引

原理:对我们的字段进行分组,如果大并发的情况下,修改数据会变慢

优点:数据量大的时候查询速度会快很多

缺点:如果建立索引的表经常修改,会影响性能,占用一定的磁盘空间

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值