数据库场景选型

本文不讨论SQLite,这玩意儿差不多就是充当XML配置来使用的,就是软件的一些配置可以用它来存,虽然它读写速度很快,但是它很多数据库的必要性(完整事务)没有支持,衡量数据库的指标也不只是读写性能,最后,项目怎么适合怎么用吧,也没有特别限制。

SQLite劣势:

1.写入粒度粗,写入是全表排它锁,会锁定其他连接的写操作直到完成写入,所以高并发下要完蛋。

2.基于文件I/O的,直接读写db文件,缺乏管理和优化,没有网络连接数据库这层,缺乏安全性。

SQLite优势:

1.基于文件IO,速度快。

2.简单,不用配置,移动端和嵌入式端最好用了。

其他数据库基于网络连接,所以瓶颈主要会卡在网络IO上。所以会觉得慢。

首先,数据库选型,应当考虑以下问题:

1.对数据一致性(ACID)的要求如何(要求越高,越不合适使用MySQL),如果是支付相关,更应该是Oracle

2.对数据保护的要求如何(要求越高,越不合适使用MySQL)

3.数据的读写比如何(越高,越需要考虑使用MySQL)

4.数据的规模如何 (数据规模较小是使用MySQL即可,中等规模时,Oracle可能更加经济,规模很大时,需要从整个架构层面来考虑)

5.业务变化的频繁程度如何(频繁变化的业务,意味着频繁的数据结构变更,意味着使用MySQL的相对成本越高)

6.自身的技术能力如何(Oracle的第三方服务更好,自身没有比较NB的技术能力,还是使用成熟产品Oracle比较合适)

当然,关系型数据库的诞生之初,主要是为了企业设计的,因为企业内部系统需求变化不快,所以用基于二维表结构的关系型数据库(RDBMS)很合适,而随着今年互联网大数据等Web应用,才催生了一堆NoSQL数据库(非关系型),因为数据结构更加灵活,更加适合需求变化快的场景。

例子:

如果是内网项目,每天同时也就几百个终端,那么MySQL就是不错的选择。当下火热的创业Web应用互联网公司也多用MySQL,用户不算多也是显而意见的

当然最后,估计也有可能是钱的原因(之一):

references:

https://www.zhihu.com/question/29088685

https://www.zhihu.com/question/31417262

https://www.zhihu.com/question/22798301

https://www.zhihu.com/question/21771941

时间: 2024-10-29 19:05:45

数据库场景选型的相关文章

flask-admin章节二:wtforms的使用以及在数据库场景中使用QuerySelectField代替SelectField

概述 flask admin可以支持自定义视图,对于涉及到比较复杂的视图可以选择继承flask_admin.BaseView来定义自己期待的结构. 自定义的视图的每个函数可以使用flask_admin.expose 语法糖来装饰,从而可以定义自己期待接收的HTTP方法和对外的URL. flask admin的良好封装,使得自定义视图非常的方便. 自定义视图中少不了涉及各种表单操作,对于不是很习惯写前端的朋友来说肯定压力比较大.不过,懒人自有懒的办法,可以选择 wtforms package提供的

简述数据库管理系统选型的基本原则

赛姆科技对数据库管理系统的选型应遵循以下基本原则:1.稳定可靠稳定可靠的数据库可以保证业务系统的常年运行,不会因为数据库的问题而遭受损失:数据库要具备灾难恢复.系统错误恢复.人为操作错误恢复等功能,同时要尽量降低数据库的计划内维护时间.2.可扩展性随着未来业务的扩展,系统的处理能力应该逐步增加满足业务处理的需求.数据库应该具有良好的伸缩性及灵活的配置,无论是主机系统内存或硬盘方面的扩展还集群系统的扩展,都能够被数据库利用,从而提高系统的处理能力.3.安全性:数据库的安全性是指保护数据库以防止不合

ReportDB数据库存储选型分析

SQLServer关于reportDB的存储选型做如下分析: 网络存储两大主要类型: 1.NAS 支持的文件传输协议:NFS(unix/linux文件共享).SMB(windows).samba(linux到windows) 2.SAN 支持的文件传输协议:iscsi,分为FC-SAN和IP-SAN两种实现方式 特点及对比: 1.SAN比NAS的优势在于速度快,因为iscsi的Block protocol会比File protocol速度快, 其中IP-SAN比FC-SAN的优势在于成本(可以将

是什么影响了数据库索引选型?

主存存取原理 主存的构成 主存储器(简称主存或内存)包括存取体.各种逻辑部件及控制电路等.存储体由许多存储单元组成,每个存储单元又包含若干个存储元件,每个存储元件能寄存一位二进制代码"0"或"1".这样,一个存储单元可以存储一串二进制代码,这串二进制代码称为存储字,这串二进制代码的位数称为存储字长,可以是8位.16位或者32位等. 主存与CPU的联系 MAR(Memory Address Register)是存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对

分布式数据库选型——数据水平拆分方案

概述 水平拆分的概念随着分布式数据库的推广已为大部分人熟知.分库分表.异构索引.小表广播.这些功能几乎是产品功能需求标配.然而有些客户使用分布式数据库后的体验不尽如意.本文尝试从数据的角度总结分布式数据的复制(replication)和分区(partition)技术原理和方案,其中分区也有称为分片(sharding),希望能引起读者一些思考,在分布式数据库选型中能注意这些细节的区别,选择适合业务的数据水平拆分方案. 分布式数据库架构 分布式数据库以集群形式存在,有多个节点.集群架构有共享磁盘架构

NoSQL选型及HBase案例详解(转)

从 NOSQL的类型到 常用的产品,我们已经做过很多关于NoSQL的文章,今天我们从国内著名的互联网公司及科研机构的实战谈一下NoSQL数据库. NoSQL一定程度上是基于一个很重要的原理—— CAP原理提出来的.传统的SQL数据库(关系型数据库)都具有ACID属性,对一致性要求很高,因此降低了A(availability)和P(partion tolerance).为了提高系统性能和可扩展性,必须牺牲C(consistency). 依据CAP理论,从应用的需求不同,数据库的选择可从三方面考虑:

数据库优化举例详解

数据库优化举例详解 林涛 发表于:2016-3-16 1:01 分类:XSQL/程序/等 标签:mysql,mysql优化 112次 数据库是所有架构中不可缺少的一环,一旦数据库出现性能问题,那对整个系统都会来带灾难性的后果.并且数据库一旦出现问题,由于数据库天生有状态(分主从)带数据(一般还不小),所以出问题之后的恢复时间一般不太可控,所以,对数据库的优化是需要我们花费很多精力去做的. 硬件层优化 这一层最简单,最近几年相信大家对SSD这个名词并不陌生,其超高的IOPS在刚出现在大家视野中的时

开源数据库的现状

数据库作为业务的核心,在整个基础软件栈中是非常重要的一环.近几年社区也是新的方案和思想层出不穷,接下来我将总结一下近几年一些主流的开源数据库方案和背后的设计思想以及适用场景.本人才疏学浅如有遗漏或者错误请见谅.本次分享聚焦于数据库既结构化数据存储 OLTP 及 NoSQL 领域,不会涉及 OLAP.对象存储.分布式文件系统. 开源RDBMS与互联网的崛起 很长时间以来,关系型数据库一直是大公司的专利,市场被 Oracle / DB2 等企业数据库牢牢把持.但是随着互联网的崛起.开源社区的发展,上

借自动化实现数据库的安全运维和跨界运维

数据库作为IT系统中重要的组成,承接着底层的基础架构和上层的应用,重要性不言而喻. 那数据库管理员(DBA)平时都做些啥呢? 以下是来自一名普通DBA的日常独白: D B A 8:30~9:00AM 日常:每天比普通用户以及应用运维早半小时到公司,第一件事就是开始检查数据库的监控和数据库的巡检,确认没有问题或者及时发现问题并在上班时间之前解决问题: 9:00~12:00AM 日常:忙于处理来自各项目的日常数据库工单(包括部署数据库实例.部署数据库群集.数据库账号授权. 数据库数据导出等),电话.