python可以用哪些数据库
作者:silencement 发布时间:2024-01-19 11:43:51
数据库分类
早期数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。
而在当今的互联网中,通常把数据库分为两类,即关系型数据库和非关系型数据库。
关系型数据库
关系型数据库是指采用了关系模型来组织数据的数据库,而关系模型是由二维表及其联系组成的数据组织。
优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
目前主流的关系型数据库有
MYSQL
目前使用最广泛的开源、多平台的关系型数据库,支持事务、符合ACID、支持多数SQL规范
SQL Server
支持事务、符合ACID、支持多数SQL规范,属于商业软件,需要注意版权和licence授权费用
Oracle
支持事务,符合关系型数据库原理,符合ACID,支持多数SQL规范,功能最强大、最复杂、市场占比最高的商业数据库
Postgresql
开源、多平台、关系型数据库,功能最强大的开源数据库,需要python环境,基于postgresql的TimeScaleDB,是目前比较火的时序数据库之一。(更多学习内容,请点击python学习网)
非关系型数据库
非关系型数据库也称为NOSQL(Not Only SQL),作为关系型数据库的一个补充,能在特定场景和特点问题下发挥高效率和高性能。
常见的非关系型数据库类型有键值(Key-Value)存储数据库和面向文档数据库(Document-oriented)
键值存储数据库类似hash,通过key做添加、删除、查询,性能高,优势在于简单、易部署、高并发,主要产品有
Redis
开源、Linux平台、key-value键值型Nosql数据库,简单稳定,非常主流的、全数据in-momory、定位于“快”的键值型nosql数据库
Memcaced
一个开源的、高性能的、具有分布式内存对象的缓存系统,通过它可以减轻数据库负载,加速动态的web应用
面向文档数据库以文档的形式存储,每个文档是一系列数据项的集合,每个数据项有名称与对应的值,主要产品有
MongoDB
开源、多平台、文档型nosql数据库,“最像关系型数据库”,定位于“灵活”的nosql数据库。适用于网站后台数据库(更新快、实时复制)、小文件系统(json,二进制)、日志分析系统(数据量大的文件)。
知识点扩展:
Python的数据库支持
经过两个多月的学习,我们对Python的基础语法大概都已经学完了,接下来我们要把我们学到的东西逐步用到应用的层面上。今天,我们要学的是,用Python实现数据库的对接。
我们先来讲一下什么是api,在编程语言的学习中,我们经常会接触到api这个词,那么究竟什么是api,简单来说就是一个接口,像java的api,有一个专门的api文档提供查询。Python数据库的api是DB API。我们主要讲的api版本是DB API2.0。
Python DB API有三个模块属性:
1、apilevel:这个属性主要是用来定义使用的Python DB API 的版本,像我们上面说的DB API 2.0;
2、threadsafety:这个是用来定义模块的线程安全度;
该参数是一个0到3的整数,0表示线程不能共享模块,1表示线程可共享模块本身,2表示线程可共享模块和连接, 但不能共享游标,3表示模块是绝对线程安全的。
3、paramstyle:这个属性定义在SQL查询中使用哪种参数风格,这里说明一下,SQL是指数据库的意思。
这个我们就不具体讲了,因为现在刚接触新知识,引入这个知识点,会很容易感到迷茫。
来源:https://www.py.cn/faq/python/12530.html
猜你喜欢
- 在Google Chrome浏览器出来之前,我一直使用FireFox,因为FireFox的插件非常丰富,更因为FireFox有强大的Fire
- 本文章采用的是Qt4,是python(x,y) 套件中集成的,为啥不集成Qt5呢,懒得装啊:)正文:首先看成品:这个程序的功能是输入原价和降
- 从概念上讲,大多数关系数据库系统都是类似的:它们都由一组数据库组成,且每个数据库都包含一组表。但是,所有的系统都有自己的管理数据的方法, M
- 基本使用import unittestclass Testcase(unittest.TestCase): @classmeth
- 很荣幸您能看到这篇文章,相信通过标题打开这篇文章的都是对tensorflow感兴趣的,特别是对卷积神经网络在mnist手写识别这个实例感兴趣
- 本文实例讲述了Python自定义装饰器原理与用法。分享给大家供大家参考,具体如下:什么是装饰器?装饰器本质是一个函数,它可以在不改变原来的函
- 哲学家就餐问题:哲学家就餐问题是典型的同步问题,该问题描述的是五个哲学家共用一张圆桌,分别坐在五张椅子上,在圆桌上有五个盘子和五个叉子(如下
- /* --注意:准备数据(可略过,非常耗时) CREATE TABLE CHECK1_T1 ( ID INT, C1 CHAR(8000)
- 从一个问题开始最近银行这个事情闹的比较厉害啊,很多储户的钱放在银行,就不翼而飞了,而银行还不管不问,说是用户的责任,打官司,用户还能输了,这
- Python中的ctypes模块可能是Python调用C方法中最简单的一种。ctypes模块提供了和C语言兼容的数据类型和函数来加载dll文
- 如题,我有一个模板,我想根据需求复制模板中间的某一页多次,比如复制第五页,然后复制3次,那么第六页,第七页,第八页都是和第五页一模一样的pp
- 本文实例讲述了Symfony2实现在controller中获取url的方法。分享给大家供大家参考,具体如下:// 假设当前URL地址是htt
- 前言使用Django服务网页时,只要用户执行导致页面更改的操作,即使该更改仅影响页面的一小部分,它都会将完整的HTML模板传递给浏览器。 但
- 如果在 Access 数据库中删除数据或对象,或者在 Access 项目中删除对象,Access 数据库或 Access 项目可能会产生碎片
- 调试程序的过程中,发现通过os.path.join拼接的路径出现了反斜杠directory1='/opt/apps/upgradeP
- js监听浏览器回车事件,可以支持ie6+,火狐,谷歌等浏览器。<html><head><script type
- numpy.reshape(重塑)给数组一个新的形状而不改变其数据numpy.reshape(a, newshape, order='
- 工作中有时候需要对vgg进行定制化处理,比如有些时候需要借助于vgg的层结构,但是需要使用的是2 channels输入,等等需求,这时候可以
- 介绍Zmail 使得在python3中发送和接受邮件变得更简单。你不需要手动添加服务器地址、端口以及适合的协议,zmail会帮你完成。此外,
- 网上的很多PHP微信支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后给出一个单文件版的,希望可以给各位想接入微信支付的带来