mysql数据库简单介绍_数据库的简单介绍
关系型数据库与非关系型数据库
关系型数据库:mysql /oracle/sql server/sqlite
优点:
1.易于维护:都是使用表结构,格式一致;
2.使用方便:sql语言通用,可用于复杂查询
3.复杂操作:可用于一个表以及多个表之间非常复杂的查询
缺点:
1.读写性能比较差,尤其海量数据的高效率读写;
2.固定的表结构,灵活度不够
3.高并发读写需求,传统的关系型数据库来说,硬盘I/O是一个很大的瓶颈
非关系型数据库(nosql):redis / hbase /mongoDB
类型:
文档数据库、键值数据库、宽列存储和图形数据库
优点:
1.格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型
2.速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘
3.高扩展性
4.成本低
缺点:
1.不提供sql支持
2.无事务处理
3.数据结构相对复杂,复杂查询方面稍欠
Mysql数据库的四大特征、四大隔离级别、三大范式、三大现象
一.数据概念
在数据库系统中,多个事务并发执行时,针对数据库不同的隔离级别,可能会出现一些问题。可能出现的问题有:脏读,不可重复读,幻读
1.脏读:
假设A和B两个事务都出现了并发,A先读取了表的数据,然后更新了表,但是这时A事务还没提交。此时B事务读取了表数据,这时候B实际上读取的是A
事务更新完的表数据。如果A事务提交,那么该数据有意义;如果A事务回滚,B读取的数据就没有意义,这就是脏读
2.不可重复读:
就是字面意思,不能重复读同一个数据,如果重复读的话,有可能返回的结果不一样。事务A先读取了表的数据,没有进行提交。然后事务B更新了表的数据,
此时事务A又读取了表的数据,两次数据不一样,A无法处理。
3.幻读:
事务A读了一次表,最后得到的ID是3.事务B也读了一次表,得到ID是3.此时事务A先插入了一条数据,然后读了表,最新的ID是4;然后事务B也插入了一条
数据,读取表,得到ID是5.此时就是幻读。 删除数据,修改数据都会有类似发生的情况
二.数据库的隔离级别
读未提交、读已提交、可重复读、可串行化
读未提交:隔离级别最低,隔离度最弱。 脏读、不可重复读、幻读都可能会发生
读已提交: 解决了脏读问题,存在不可重复读、幻读问题
可重复读:存在一定的幻读可能,Mysql默认的隔离级别
可串行化:级别最高,问题都解决,但是性能最低
三.事务的四大特性:
事务简介:
1.在Mysql中只有使用了Innodb数据库引擎的数据库或者表才支持事务
2.事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行
3.事务用来管理insert,update,delete语句
特性:原子性、一致性、隔离性、持久性
1.原子性(Atomic):事务包含的所有数据库操作,要么全部都成功,要么全部失败,不可以分开执行
2.一致性(Consistent):将一个大事务拆分成若干小事务,小事务完成的数据状态与使用一个大事务完成后的数据状态一致
3.隔离性(Isolated):一个事务的执行不会被另一个事务干扰
4.持久性(Durable):事务执行的结果持久化到磁盘中
事务的操作:
start transaction; #开启事务
#sql语句 增删改查
savepoint 节点名; #保存节点
rollback; #取消全部事务 回滚
rollback to 节点名 #回到某个节点
commit #提交
四.数据库设计的三大范式
1.第一范式(确保每列保持原子性)
比如某个人的地址,可以拆分成 (省份 城市 详细住址)三个字段,这样对用户进行分类非常方便,也会提高数据库的性能
2.第二范式(确保表中的每列都和主键相关)
3.第三范式(确保每列都和主键列直接相关,而不是间接相关)
五.Mysql数据库中常用的几种引擎以及区别
常用的包括三种:InnoDB、Myisam、Memory
InnoDB和Myisam的默认索引是B+ tree,Memory的默认索引是hash
区别:
1.InnoDB支持事务,支持外键,支持行级锁,写入数据时操作快
2.Myisam不支持事务,不支持外键,支持表级锁,支持全文索引,读取数据快
3.Memory所有的数据都保留在内存中,不需要进行磁盘的IO所以读取的速度很快,但是一旦关机的话表的结构会保留但是数据就会丢失,表支持Hash索引,因此查找速度很快
Redis,MongoDb的特点
Redis
优点:
1.支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、
2.支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失 的手段。
3.支持通过Replication进行数据复制,通过master-slave机制,可以实时进行数据的同步复制,支持多级复制和增量复制,master-slave机制是Redis进行HA的重要手段。
4.单线程请求,所有命令串行执行,并发情况下不需要考虑数据一致性问题。
5.支持pub/sub消息订阅机制,可以用来进行消息订阅与通知。
6.支持简单的事务需求,但业界使用场景很少,并不成熟
缺点:
1.Redis只能使用单线程,性能受限于CPU性能,故单实例CPU最高才可能达到5-6wQPS每秒(取决于数据结构,数据大小以及服务器硬件性能,日常环境中QPS高峰大约在1-2w左右)。
2.支持简单的事务需求,但业界使用场景很少,并不成熟,既是优点也是缺点。
3.Redis在string类型上会消耗较多内存,可以使用dict(hash表)压缩存储以降低内存耗用
MongoDb
优点:
1.更高的写负载,MongoDB拥有更高的插入速度。
2.处理很大的规模的单表,当数据表太大的时候可以很容易的分割表。
3.高可用性,设置M-S不仅方便而且很快,MongoDB还可以快速、安全及自动化的实现节点(数据中心)故障转移。
4.快速的查询,MongoDB支持二维空间索引,比如管道,因此可以快速及精确的从指定位置获取数据。MongoDB在启动后会将数据库中的数据以文件映射的方式加载到内存中。如果内存资源相当丰富的话,这将极大地提高数据库的查询速度。
5.非结构化数据的爆发增长,增加列在有些情况下可能锁定整个数据库,或者增加负载从而导致性能下降,由于MongoDB的弱数据结构模式,添加1个新字段不会对旧表格有任何影响,整个过程会非常快速。
缺点:
1.不支持事务。
2.MongoDB占用空间过大 。
3.MongoDB没有成熟的维护工具
mysql数据库简单介绍_数据库的简单介绍相关推荐
- MySQL删除空值语句_数据库语句sql 删除空记录
最简单删除SQL Server中所有数据的方法 原文:最简单删除SQL Server中所有数据的方法 最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实 ...
- 【MySQL 第10章_数据库的设计规范】
第10章_数据库的设计规范 1. 为什么需要数据库设计 2.范式 2.1范式简介 2.2范式都包括哪些 2.3 键和相关属性的概念 2.4第一范式(1st NF) 2.5 第二范式(2nd NF) 2 ...
- mysql打错了怎么办_数据库出错了怎么办?
下面是网上收集的多种方法,大家可以测试下. (一) 昨晚浏览自己的Blog的时候,突然发现所有页面都无法显示,到后台查看的时候,发现一个"Table 'xxx' is marked as c ...
- mysql多租户视频_数据库实现多租户支持的思路
前言 在云领域我们经常会听到一个词:多租户.这个词在不同的语境中有着不同的含义,接下来将从理论到实践对以往的项目进行一次总结,同时实战一个Demo.本篇先从理论介绍云平台中的多租户的概念以及实现多租户 ...
- mysql 查找相似数据_数据库存储引擎大揭秘,不看不知道这里面的骚操作可真多!...
吊打各种树这篇文章 带大家学习一遍数据结构中的各种树,对数据结构还不够熟悉的同学,那篇文章可以作为基础入门,我画了很多图理解起来不困难,建议回头先学习下那篇文章,更容易理解本文要讲的内容. 文章里有提 ...
- 电脑mysql是什么意思_数据库是什么意思
展开全部 数据库需要从以下几个方面去了解: 一.数据库功能: 数据库(Database)是按照数据结构来组织.存储和管理数e5a48de588b6323131333532363134313032313 ...
- mysql dbms是什么_数据库管理系统(DBMS)是用来做什么的?
展开全部 数据库管理系统(database management system)是一种操纵和32313133353236313431303231363533e58685e5aeb93133326235 ...
- mysql router是什么_数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作...
摘要:墨天轮数据库周刊第28期发布啦,每周1次推送本周数据库相关热门资讯.精选文章.干货文档.本周分享 开发者最喜爱的数据库是什么?阿里云脱口秀爆聊程序员转型:MySQL update误操作后进行数据 ...
- MySQL保存计算结果_数据库保存计算结果 fluent计算完成后怎么保存
数据库里保存的字段为数学公式,怎样实现查出时自动计算结果? 怎么保存vf命令输出结果? 建议保存到文本t或excel文件中,或直接保存为DBF的自由表数据库.例如,如果将结果计算到数值变量x并添加另一 ...
最新文章
- sae上部署第一个站
- php获取当前时间的毫秒数,并且利用它测试代码段执行时间
- Dotnet 2.0配置系统
- word2026第十套计算机二级,计算机二级第十套练习真题
- nginx搭建静态文件服务器,Nginx 静态文件服务器搭建及autoindex模块解析
- vc2010+openCV1.0实现将指定目录下的所有jpg文件缩放后存放到目标文件夹
- 时序动作定位:Rethinking the Faster R-CNN Architecture for Temporal Action Localization(TAL-Net)
- Java GC种类以及触发时机
- 拓端tecdat|R语言极值分析:分块极大值Block-maxima、阈值超额法threshold excess、广义帕累托分布GPD拟合降水数据时间序列
- IDEA软件中的五子棋~
- Gradle的神奇之处
- html5 页面整体居中,html5标题居中 DIV布局怎么在页面水平居中
- 小E开发板wifi音箱二实现网络助手发送整个WAV音乐
- 三大框架之---MyBaits第二章
- 使android桌面图标变大
- 阿里云配置二级域名与nginx代理踩坑
- 一步一步oa办公系统java,OA项目 一个OA办公系统的java源码 联合开发网 - pudn.com
- ThinkPHP3.2/ThinkPHP5对比
- 统计数组中各数字出现的次数
- 面向Web的数据挖掘
热门文章
- python中cv2库_Python cv2库(人脸检测)
- dama数据管理知识体系指南_DAMA知识体系解读(6)数据操作管理
- SigmaStar SSD201 操作记录
- Android 11 修改libcore update-api 遇到的问题
- java http请求 乱码_怎么解决java中的http请求乱码
- deepin卸载了python_Deepin-Linux下python卸载与安装(失败的折腾)
- 2019年上半年总结__下半年计划
- 【题解】 Codeforces Edu41 F. k-substrings (字符串Hash)
- codeforce 589B枚举
- arc 和 非arc兼容